diff --git a/README.md b/README.md index 6fb8e3abb..dfe089d06 100644 --- a/README.md +++ b/README.md @@ -232,40 +232,40 @@ However, it isn't too difficult to make a file-based router. Here's a file-based example code with builder: ```tsx -import url from "node:url"; -import path from "node:path"; -import { glob } from "glob"; -import { defineRouter } from "waku/router/server"; +import url from 'node:url'; +import path from 'node:path'; +import { glob } from 'glob'; +import { defineRouter } from 'waku/router/server'; const routesDir = path.join( path.dirname(url.fileURLToPath(import.meta.url)), - "routes", + 'routes', ); export default defineRouter( - // getComponent (id is "**/layout" or "**/page") + // getComponent (id is '**/layout' or '**/page') async (id) => { - const files = await glob(${"`"}$\{id}.{tsx,js}${"`"}, { cwd: routesDir }); + const files = await glob(${'`'}$\{id}.{tsx,js}${'`'}, { cwd: routesDir }); if (files.length === 0) { return null; } - const items = id.split("/"); + const items = id.split('/'); switch (items.length) { case 1: - return import(${"`"}./routes/$\{items[0]}.tsx${"`"}); + return import(${'`'}./routes/$\{items[0]}.tsx${'`'}); case 2: - return import(${"`"}./routes/$\{items[0]}/$\{items[1]}.tsx${"`"}); + return import(${'`'}./routes/$\{items[0]}/$\{items[1]}.tsx${'`'}); case 3: - return import(${"`"}./routes/$\{items[0]}/$\{items[1]}/$\{items[2]}.tsx${"`"}); + return import(${'`'}./routes/$\{items[0]}/$\{items[1]}/$\{items[2]}.tsx${'`'}); default: - throw new Error("too deep route"); + throw new Error('too deep route'); } }, // getPathsForBuild async () => { - const files = await glob("**/page.{tsx,js}", { cwd: routesDir }); + const files = await glob('**/page.{tsx,js}', { cwd: routesDir }); return files.map( - (file) => "/" + file.slice(0, Math.max(0, file.lastIndexOf("/"))), + (file) => '/' + file.slice(0, Math.max(0, file.lastIndexOf('/'))), ); }, ); diff --git a/packages/website/package.json b/packages/website/package.json index 54a7ef967..ab8c3cc2a 100644 --- a/packages/website/package.json +++ b/packages/website/package.json @@ -10,8 +10,10 @@ "start": "waku start --with-ssr" }, "dependencies": { + "@uidotdev/usehooks": "^2.4.1", "bright": "^0.8.4", "express": "^4.18.2", + "next-mdx-remote": "^4.4.1", "react": "18.3.0-canary-0e352ea01-20231109", "react-dom": "18.3.0-canary-0e352ea01-20231109", "react-server-dom-webpack": "18.3.0-canary-0e352ea01-20231109", diff --git a/packages/website/src/components/app.tsx b/packages/website/src/components/app.tsx index 4506031f9..4ee288b86 100644 --- a/packages/website/src/components/app.tsx +++ b/packages/website/src/components/app.tsx @@ -1,6 +1,7 @@ +import { Button } from './button.js'; +import { Content } from './content.js'; import { Credits } from './credits.js'; -import { ShowHide } from './showhide.js'; -import { Code1 } from './code.js'; +import { Readme } from './readme.js'; const App = () => { return ( @@ -27,35 +28,22 @@ const App = () => { The minimal React framework
+ + + {links.map((link) => ( - +
- - - ); }; -const Link = ({ href, children }: any) => { - return ( - - {children} - - ); -}; - const links = [ { href: 'https://github.com/dai-shi/waku', children: 'GitHub' }, - { href: 'https://www.npmjs.com/package/waku', children: 'NPM' }, + // { href: 'https://www.npmjs.com/package/waku', children: 'NPM' }, { href: 'https://discord.gg/MrQdmzd', children: 'Discord' }, ]; diff --git a/packages/website/src/components/button.tsx b/packages/website/src/components/button.tsx new file mode 100644 index 000000000..427a6cff2 --- /dev/null +++ b/packages/website/src/components/button.tsx @@ -0,0 +1,32 @@ +// FIXME we should be able to remove this directive +'use client'; + +import type { ComponentPropsWithoutRef, ElementType } from 'react'; + +type ButtonProps = ComponentPropsWithoutRef<'button'> & + ComponentPropsWithoutRef<'a'>; + +export const Button = ({ href, children, ...rest }: ButtonProps) => { + let Element: ElementType = 'button'; + const props: ButtonProps = {}; + + if (href) { + Element = 'a'; + props.href = href; + + if (href.startsWith('http')) { + props.target = '_blank'; + props.rel = 'noopener noreferrer'; + } + } + + return ( + + {children} + + ); +}; diff --git a/packages/website/src/components/code.tsx b/packages/website/src/components/code.tsx index b047e3416..904576506 100644 --- a/packages/website/src/components/code.tsx +++ b/packages/website/src/components/code.tsx @@ -1,26 +1,11 @@ -import { Code } from 'bright'; +import { Code as Component } from 'bright'; -const code1 = ` -import { lazy } from "react"; -import { defineEntries } from "waku/server"; +import theme from '../theme.json'; -const App = lazy(() => import("./components/App.js")); +type CodeProps = { + code: string; +}; -export default defineEntries( - // renderEntries - async (input) => { - return { - App: , - }; - }, -); -`.trim(); - -export const Code1 = () => ( - +export const Code = ({ code, ...rest }: CodeProps) => ( + ); diff --git a/packages/website/src/components/content.tsx b/packages/website/src/components/content.tsx new file mode 100644 index 000000000..d750f9434 --- /dev/null +++ b/packages/website/src/components/content.tsx @@ -0,0 +1,61 @@ +import fs from 'node:fs'; +// @ts-expect-error no exported member +import { MDXRemote } from 'next-mdx-remote/rsc'; + +import { Code } from './code.js'; + +export const Content = () => { + const file = fs.readFileSync('../../README.md', 'utf8'); + const source = `## Introduction${file + .split('## Introduction')[1] + ?.split('## Tweets')[0]}`; + + return ; +}; + +const components = { + h2: ({ children, ...rest }: any) => ( +

+ {children} +

+ ), + h3: ({ children, ...rest }: any) => ( +

+ {children} +

+ ), + h4: ({ children, ...rest }: any) => ( +

+ {children} +

+ ), + p: ({ children, ...rest }: any) => ( +

+ {children} +

+ ), + code: ({ children, ...rest }: any) => ( + + {children} + + ), + pre: ({ children, ...rest }: any) => ( + + ), +}; diff --git a/packages/website/src/components/modal.tsx b/packages/website/src/components/modal.tsx new file mode 100644 index 000000000..3e5cffef3 --- /dev/null +++ b/packages/website/src/components/modal.tsx @@ -0,0 +1,30 @@ +'use client'; + +import { Fragment } from 'react'; +import type { ReactNode } from 'react'; +import { useClickAway } from '@uidotdev/usehooks'; + +type ModalProps = { + isOpen: boolean; + onClose: () => void; + children: ReactNode; +}; + +export const Modal = ({ isOpen, onClose, children }: ModalProps) => { + const ref: any = useClickAway(onClose); + + if (!isOpen) return ; + + return ( +
+
+
+ {children} +
+
+
+ ); +}; diff --git a/packages/website/src/components/readme.tsx b/packages/website/src/components/readme.tsx new file mode 100644 index 000000000..692d5e77a --- /dev/null +++ b/packages/website/src/components/readme.tsx @@ -0,0 +1,24 @@ +'use client'; + +import { useState, Fragment } from 'react'; +import type { ReactNode } from 'react'; + +import { Button } from './button.js'; +import { Modal } from './modal.js'; + +type ReadmeProps = { + children: ReactNode; +}; + +export const Readme = ({ children }: ReadmeProps) => { + const [isOpen, setIsOpen] = useState(false); + + return ( + + + setIsOpen(false)}> + {children} + + + ); +}; diff --git a/packages/website/src/components/showhide.tsx b/packages/website/src/components/showhide.tsx deleted file mode 100644 index c1b5ec0f5..000000000 --- a/packages/website/src/components/showhide.tsx +++ /dev/null @@ -1,32 +0,0 @@ -'use client'; - -import { useState } from 'react'; -import type { ReactNode } from 'react'; - -export const ShowHide = ({ children }: { children: ReactNode }) => { - const [show, setShow] = useState(false); - return ( -
- {show ? ( - <> - {children} - - - ) : ( - - )} -
- ); -}; diff --git a/packages/website/src/index.html b/packages/website/src/index.html index 3f744fe75..b94919fc8 100644 --- a/packages/website/src/index.html +++ b/packages/website/src/index.html @@ -34,7 +34,20 @@ diff --git a/packages/website/src/main.tsx b/packages/website/src/main.tsx index ad34290a4..87e03a85e 100644 --- a/packages/website/src/main.tsx +++ b/packages/website/src/main.tsx @@ -1,5 +1,5 @@ import { StrictMode } from 'react'; -import { createRoot } from 'react-dom/client'; +import { createRoot, hydrateRoot } from 'react-dom/client'; import { Root, Slot } from 'waku/client'; const rootElement = ( @@ -10,4 +10,17 @@ const rootElement = ( ); -createRoot(document.getElementById('root')!).render(rootElement); +// FIXME temporary fix, doesn't feel ideal. +function init() { + const root = document.getElementById('root'); + if (!root) { + setTimeout(init); + return; + } + if ((globalThis as any).__WAKU_SSR_ENABLED__) { + hydrateRoot(root, rootElement); + } else { + createRoot(root).render(rootElement); + } +} +init(); diff --git a/packages/website/src/theme.json b/packages/website/src/theme.json new file mode 100644 index 000000000..4dd38031b --- /dev/null +++ b/packages/website/src/theme.json @@ -0,0 +1,1173 @@ +{ + "name": "lucy", + "type": "dark", + "colors": { + "editorInlayHint.foreground": "#5e6173", + "editorInlayHint.background": "#00000000", + "editorInlayHint.typeForeground": "#88898f", + "editorInlayHint.parameterForeground": "#c3b5d3", + "focusBorder": "#5e6173", + "foreground": "#d7d7d7", + "widget.shadow": "#0e0f15", + "selection.background": "#413b4f", + "descriptionForeground": "#88898f", + "errorForeground": "#fb7da7", + "textBlockQuote.background": "#292c38", + "textBlockQuote.border": "#292c38", + "textCodeBlock.background": "#292c38", + "textLink.activeForeground": "#d7d7d7", + "textLink.foreground": "#e3cf65", + "textPreformat.foreground": "#d7d7d7", + "textSeparator.foreground": "#5e6173", + "button.background": "#292c38", + "button.foreground": "#88898f", + "button.hoverBackground": "#1a1d27", + "dropdown.background": "#1a1d27", + "dropdown.listBackground": "#292c38", + "dropdown.border": "#1a1d27", + "dropdown.foreground": "#88898f", + "input.background": "#1F222D", + "input.border": "#1F222D", + "input.foreground": "#d7d7d7", + "input.placeholderForeground": "#494c59", + "inputOption.activeBorder": "#494c59", + "inputValidation.errorBackground": "#1F222D", + "inputValidation.errorBorder": "#fb7da7", + "inputValidation.infoBackground": "#1F222D", + "inputValidation.infoBorder": "#51c7da", + "inputValidation.warningBorder": "#fdad5d", + "scrollbar.shadow": "#1a1d27", + "scrollbarSlider.activeBackground": "#ffffff12", + "scrollbarSlider.background": "#ffffff12", + "scrollbarSlider.hoverBackground": "#ffffff12", + "badge.foreground": "#1a1d27", + "badge.background": "#e3cf65", + "progressBar.background": "#292c38", + "list.activeSelectionBackground": "#1a1d27", + "list.activeSelectionForeground": "#e3cf65", + "list.errorForeground": "#fb7da7", + "list.warningForeground": "#fdad5d", + "list.dropBackground": "#161821bf", + "list.focusBackground": "#1a1d27", + "list.focusForeground": "#d7d7d7", + "list.highlightForeground": "#d7d7d7", + "list.hoverBackground": "#14161e", + "list.hoverForeground": "#d7d7d7", + "list.inactiveSelectionBackground": "#1a1d27", + "list.inactiveSelectionForeground": "#e3cf65", + "list.inactiveFocusBackground": "#1a1d27", + "list.invalidItemForeground": "#fb7da7", + "activityBar.background": "#0e0f15", + "activityBar.dropBackground": "#161821bf", + "activityBar.foreground": "#88898f", + "activityBar.border": "#0e0f15", + "activityBarBadge.background": "#e3cf65", + "activityBarBadge.foreground": "#1a1d27", + "sideBar.background": "#14161e", + "sideBar.foreground": "#88898f", + "sideBar.border": "#0e0f15", + "sideBar.dropBackground": "#161821bf", + "sideBarTitle.foreground": "#494c59", + "sideBarSectionHeader.background": "#14161e", + "sideBarSectionHeader.foreground": "#5e6173", + "editorGroup.background": "#0e0f15", + "editorGroup.border": "#14161e", + "editorGroup.dropBackground": "#161821bf", + "editorGroupHeader.noTabsBackground": "#1a1d27", + "editorGroupHeader.tabsBackground": "#1a1d27", + "editorGroupHeader.tabsBorder": "#1a1d27", + "tab.activeBackground": "#1a1d27", + "tab.activeForeground": "#e3cf65", + "tab.border": "#1a1d27", + "tab.activeBorder": "#e3cf65", + "tab.unfocusedActiveBorder": "#88898f", + "tab.inactiveBackground": "#1a1d27", + "tab.inactiveForeground": "#88898f", + "tab.unfocusedActiveForeground": "#c3b5d3", + "tab.unfocusedInactiveForeground": "#88898f", + "tab.hoverBackground": "#1a1d27", + "tab.unfocusedHoverBackground": "#1a1d27", + "tab.hoverBorder": "#494c59", + "tab.unfocusedHoverBorder": "#1a1d27", + "editor.background": "#1a1d27", + "editor.foreground": "#d7d7d7", + "editorLineNumber.foreground": "#494c59", + "editorLineNumber.activeForeground": "#c3b5d3", + "editorCursor.background": "#00000000", + "editorCursor.foreground": "#d7d7d7", + "editor.selectionBackground": "#292c38", + "editor.inactiveSelectionBackground": "#ffffff0c", + "editor.selectionHighlightBackground": "#ffffff26", + "editor.selectionHighlightBorder": "#00000000", + "editor.wordHighlightBackground": "#ffffff26", + "editor.wordHighlightBorder": "#00000000", + "editor.wordHighlightStrongBackground": "#ffffff26", + "editor.wordHighlightStrongBorder": "#00000000", + "editor.findMatchBackground": "#ffffff26", + "editor.findMatchBorder": "#e3cf65", + "editor.findMatchHighlightBackground": "#ffffff26", + "editor.findMatchHighlightBorder": "#00000000", + "editor.findRangeHighlightBackground": "#ffffff0c", + "editor.findRangeHighlightBorder": "#00000000", + "editor.hoverHighlightBackground": "#ffffff0c", + "editor.lineHighlightBackground": "#ffffff0c", + "editor.lineHighlightBorder": "#00000000", + "editorLink.activeForeground": "#51c7da", + "editor.rangeHighlightBackground": "#292c38", + "editor.rangeHighlightBorder": "#292c38", + "editorWhitespace.foreground": "#494c59", + "editorIndentGuide.background": "#292c38", + "editorRuler.foreground": "#494c59", + "editorCodeLens.foreground": "#5e6173", + "editorBracketMatch.background": "#1a1d27", + "editorBracketMatch.border": "#5e6173", + "editorError.foreground": "#fb7da7", + "editorError.border": "#00000000", + "editorWarning.foreground": "#fdad5d", + "editorWarning.border": "#00000000", + "editorInfo.foreground": "#51c7da", + "editorInfo.border": "#1a1d27", + "editorHint.foreground": "#af98e6", + "editorHint.border": "#1a1d27", + "editorGutter.background": "#1a1d27", + "editorGutter.modifiedBackground": "#fdad5d", + "editorGutter.addedBackground": "#76c5a4", + "editorGutter.deletedBackground": "#fb7da7", + "diffEditor.insertedTextBackground": "#76c5a40c", + "diffEditor.insertedTextBorder": "#00000000", + "diffEditor.removedTextBackground": "#ff84ad0c", + "diffEditor.removedTextBorder": "#00000000", + "editorWidget.background": "#292c38", + "editorWidget.border": "#292c38", + "editorSuggestWidget.background": "#292c38", + "editorSuggestWidget.border": "#292c38", + "editorSuggestWidget.foreground": "#c3b5d3", + "editorSuggestWidget.highlightForeground": "#d7d7d7", + "editorSuggestWidget.selectedBackground": "#5e6173", + "editorHoverWidget.background": "#292c38", + "editorHoverWidget.border": "#1a1d27", + "debugExceptionWidget.background": "#292c38", + "debugExceptionWidget.border": "#1a1d27", + "editorMarkerNavigation.background": "#292c38", + "editorMarkerNavigationError.background": "#fb7da7", + "editorMarkerNavigationWarning.background": "#fdad5d", + "editorMarkerNavigationInfo.background": "#51c7da", + "peekView.border": "#1a1d27", + "peekViewEditor.background": "#292c38", + "peekViewEditorGutter.background": "#292c38", + "peekViewEditor.matchHighlightBackground": "#494c59", + "peekViewResult.background": "#292c38", + "peekViewResult.fileForeground": "#88898f", + "peekViewResult.lineForeground": "#88898f", + "peekViewResult.matchHighlightBackground": "#494c59", + "peekViewResult.selectionBackground": "#413b4f", + "peekViewResult.selectionForeground": "#d7d7d7", + "peekViewTitle.background": "#292c38", + "peekViewTitleDescription.foreground": "#88898f", + "peekViewTitleLabel.foreground": "#d7d7d7", + "merge.currentHeaderBackground": "#ff84ad26", + "merge.currentContentBackground": "#ff84ad0c", + "merge.incomingHeaderBackground": "#76c5a426", + "merge.incomingContentBackground": "#76c5a40c", + "merge.border": "#1a1d27", + "merge.commonHeaderBackground": "#ffffff26", + "merge.commonContentBackground": "#ffffff0c", + "editorOverviewRuler.border": "#1a1d27", + "editorOverviewRuler.currentContentForeground": "#292c38", + "editorOverviewRuler.incomingContentForeground": "#292c38", + "editorOverviewRuler.findMatchForeground": "#ffffff26", + "editorOverviewRuler.rangeHighlightForeground": "#ffffff26", + "editorOverviewRuler.selectionHighlightForeground": "#ffffff26", + "editorOverviewRuler.wordHighlightForeground": "#ffffff26", + "editorOverviewRuler.wordHighlightStrongForeground": "#ffffff26", + "editorOverviewRuler.modifiedForeground": "#fdad5d", + "editorOverviewRuler.addedForeground": "#76c5a4", + "editorOverviewRuler.deletedForeground": "#fb7da7", + "editorOverviewRuler.errorForeground": "#fb7da7", + "editorOverviewRuler.warningForeground": "#fdad5d", + "editorOverviewRuler.infoForeground": "#51c7da", + "panel.background": "#292c38", + "panel.border": "#1a1d27", + "panel.dropBackground": "#161821bf", + "panelTitle.activeBorder": "#e3cf65", + "panelTitle.activeForeground": "#e3cf65", + "panelTitle.inactiveForeground": "#88898f", + "statusBar.background": "#14161e", + "statusBar.foreground": "#5e6173", + "statusBar.border": "#0e0f15", + "statusBar.debuggingBackground": "#5e6173", + "statusBar.debuggingForeground": "#d7d7d7", + "statusBar.debuggingBorder": "#14161e", + "statusBar.noFolderBackground": "#14161e", + "statusBar.noFolderForeground": "#5e6173", + "statusBar.noFolderBorder": "#0e0f15", + "statusBarItem.activeBackground": "#1a1d27", + "statusBarItem.hoverBackground": "#1a1d27", + "statusBarItem.prominentBackground": "#292c38", + "statusBarItem.prominentHoverBackground": "#292c38", + "titleBar.activeBackground": "#14161e", + "titleBar.activeForeground": "#88898f", + "titleBar.inactiveBackground": "#14161e", + "titleBar.inactiveForeground": "#494c59", + "titleBar.border": "#0e0f15", + "notificationCenter.border": "#292c38", + "notificationCenterHeader.foreground": "#88898f", + "notificationCenterHeader.background": "#292c38", + "notificationToast.border": "#292c38", + "notifications.foreground": "#c3b5d3", + "notifications.background": "#292c38", + "notifications.border": "#292c38", + "notificationLink.foreground": "#e3cf65", + "extensionButton.prominentForeground": "#d7d7d7", + "extensionButton.prominentBackground": "#292c38", + "extensionButton.prominentHoverBackground": "#494c59", + "pickerGroup.border": "#1a1d27", + "pickerGroup.foreground": "#494c59", + "terminal.background": "#292c38", + "terminal.foreground": "#d7d7d7", + "terminal.ansiBlack": "#292c38", + "terminal.ansiBlue": "#fdad5d", + "terminal.ansiBrightBlack": "#5e6173", + "terminal.ansiBrightBlue": "#fdad5d", + "terminal.ansiBrightCyan": "#51c7da", + "terminal.ansiBrightGreen": "#76c5a4", + "terminal.ansiBrightMagenta": "#af98e6", + "terminal.ansiBrightRed": "#fb7da7", + "terminal.ansiBrightWhite": "#d7d7d7", + "terminal.ansiBrightYellow": "#e3cf65", + "terminal.ansiCyan": "#51c7da", + "terminal.ansiGreen": "#76c5a4", + "terminal.ansiMagenta": "#af98e6", + "terminal.ansiRed": "#fb7da7", + "terminal.ansiWhite": "#d7d7d7", + "terminal.ansiYellow": "#e3cf65", + "terminal.selectionBackground": "#ffffff26", + "terminalCursor.background": "#00000000", + "terminalCursor.foreground": "#d7d7d7", + "debugToolBar.background": "#292c38", + "welcomePage.buttonBackground": "#292c38", + "welcomePage.buttonHoverBackground": "#494c59", + "walkThrough.embeddedEditorBackground": "#14161e", + "gitDecoration.modifiedResourceForeground": "#76c5a4", + "gitDecoration.deletedResourceForeground": "#fb7da7", + "gitDecoration.untrackedResourceForeground": "#fdad5d", + "gitDecoration.ignoredResourceForeground": "#494c59", + "gitDecoration.conflictingResourceForeground": "#fdad5d" + }, + "tokenColors": [ + { + "scope": [ + "comment", + "comment keyword", + "comment markup.underline.link", + "comment string", + "comment punctuation.definition", + "comment punctuation", + "comment text" + ], + "settings": { + "fontStyle": "normal", + "foreground": "#5e6173" + } + }, + { + "scope": "comment storage.type", + "settings": { + "foreground": "#5e6173" + } + }, + { + "scope": "comment entity.name.type", + "settings": { + "foreground": "#c3b5d3" + } + }, + { + "scope": ["comment variable", "comment variable.other"], + "settings": { + "foreground": "#c3b5d3" + } + }, + { + "scope": "comment keyword.codetag.notation", + "settings": { + "foreground": "#af98e6" + } + }, + { + "scope": "comment.git-status.header.remote", + "settings": { + "foreground": "#fb7da7" + } + }, + { + "scope": "comment.git-status.header.local", + "settings": { + "foreground": "#51c7da" + } + }, + { + "scope": "comment.other.git-status.head", + "settings": { + "foreground": "#d7d7d7" + } + }, + { + "scope": "constant", + "settings": { + "foreground": "#af98e6" + } + }, + { + "scope": "constant.other", + "settings": { + "foreground": "#d7d7d7" + } + }, + { + "scope": "constant.other.property", + "settings": { + "foreground": "#af98e6" + } + }, + { + "scope": "constant.other.color", + "settings": { + "foreground": "#af98e6" + } + }, + { + "scope": "constant.other.character-class.escape", + "settings": { + "foreground": "#af98e6" + } + }, + { + "scope": "constant.other.key", + "settings": { + "foreground": "#af98e6" + } + }, + { + "scope": "constant.other.symbol", + "settings": { + "foreground": "#fdad5d" + } + }, + { + "scope": "constant.numeric", + "settings": { + "foreground": "#af98e6" + } + }, + { + "scope": "constant.language", + "settings": { + "foreground": "#af98e6" + } + }, + { + "scope": "constant.character.escape", + "settings": { + "foreground": "#af98e6" + } + }, + { + "scope": "constant.numeric.line-number.find-in-files", + "settings": { + "foreground": "#494c59" + } + }, + { + "scope": "constant.numeric.line-number.match.find-in-files", + "settings": { + "foreground": "#e3cf65" + } + }, + { + "scope": "entity.name.section", + "settings": { + "foreground": "#e3cf65" + } + }, + { + "scope": "entity.name", + "settings": { + "foreground": "#76c5a4" + } + }, + { + "scope": "entity.name.class", + "settings": { + "foreground": "#51c7da" + } + }, + { + "scope": "entity.name.constant", + "settings": { + "foreground": "#af98e6" + } + }, + { + "scope": "entity.name.namespace", + "settings": { + "foreground": "#d7d7d7" + } + }, + { + "scope": "entity.other.inherited-class", + "settings": { + "fontStyle": "normal", + "foreground": "#51c7da" + } + }, + { + "scope": "entity.name.function", + "settings": { + "foreground": "#76c5a4" + } + }, + { + "scope": [ + "entity.name.tag", + "entity.name.tag.js.jsx support.class.component.js.jsx" + ], + "settings": { + "foreground": "#fb7da7" + } + }, + { + "scope": "entity.other.attribute-name", + "settings": { + "fontStyle": "normal", + "foreground": "#51c7da" + } + }, + { + "scope": [ + "entity.other.attribute-name.class.css", + "entity.other.attribute-name.parent-selector-suffix.css", + "entity.other.attribute-name.parent-selector-suffix.css punctuation.definition.entity.css" + ], + "settings": { + "foreground": "#76c5a4" + } + }, + { + "scope": "entity.other.attribute-name.id.css", + "settings": { + "foreground": "#fdad5d" + } + }, + { + "scope": "entity.other.attribute-name.pseudo-class.cssentity.other.pseudo-class.css", + "settings": { + "fontStyle": "normal", + "foreground": "#51c7da" + } + }, + { + "scope": ["entity.name.function", "support.function"], + "settings": { + "foreground": "#76c5a4" + } + }, + { + "scope": "entity.other.git-status.hex", + "settings": { + "foreground": "#af98e6" + } + }, + { + "scope": "invalid", + "settings": { + "fontStyle": "normal" + } + }, + { + "scope": "keyword", + "settings": { + "foreground": "#fb7da7" + } + }, + { + "scope": "keyword.control", + "settings": { + "foreground": "#fb7da7" + } + }, + { + "scope": "keyword.operator", + "settings": { + "foreground": "#fb7da7" + } + }, + { + "scope": "keyword.other.substitution", + "settings": { + "foreground": "#88898f" + } + }, + { + "scope": "keyword.other.template.beginkeyword.other.template.end", + "settings": { + "foreground": "#fb7da7" + } + }, + { + "scope": [ + "keyword.operator.heading.restructuredtext", + "keyword.operator.table.row.restructuredtext", + "keyword.operator.table.data.restructuredtext" + ], + "settings": { + "foreground": "#88898f" + } + }, + { + "scope": "markup.normal", + "settings": { + "fontStyle": "normal" + } + }, + { + "scope": "markup.bold", + "settings": { + "fontStyle": "bold" + } + }, + { + "scope": "markup.heading", + "settings": { + "foreground": "#e3cf65" + } + }, + { + "scope": "markup.raw", + "settings": { + "foreground": "#fdad5d" + } + }, + { + "scope": "markup.underline", + "settings": { + "fontStyle": "underline" + } + }, + { + "scope": "markup.underline.link", + "settings": { + "foreground": "#76c5a4" + } + }, + { + "scope": [ + "markup.inserted", + "markup.inserted punctuation.definition.inserted" + ], + "settings": { + "foreground": "#76c5a4" + } + }, + { + "scope": [ + "markup.deleted", + "markup.deleted punctuation.definition.deleted" + ], + "settings": { + "foreground": "#fb7da7" + } + }, + { + "scope": [ + "markup.changed", + "markup.changed punctuation.definition.changed" + ], + "settings": { + "foreground": "#fb7da7" + } + }, + { + "scope": [ + "markup.ignored", + "markup.ignored punctuation.definition.ignored" + ], + "settings": { + "foreground": "#88898f" + } + }, + { + "scope": "markup.untracked", + "settings": { + "foreground": "#88898f" + } + }, + { + "scope": "markup.quote", + "settings": { + "fontStyle": "normal" + } + }, + { + "scope": [ + "meta.brace.round", + "meta.brace.square", + "meta.brace.curly", + "meta.delimiter.comma.js", + "meta.function-call.without-arguments.js", + "meta.function-call.method.without-arguments.js" + ], + "settings": { + "foreground": "#88898f" + } + }, + { + "scope": [ + "meta.function-call", + "meta.function-call.arguments meta.function-call" + ], + "settings": { + "foreground": "#76c5a4" + } + }, + { + "scope": [ + "meta.function-call meta.function-call.arguments", + "meta.function-call meta.arguments", + "meta.function-call meta.group" + ], + "settings": { + "foreground": "#d7d7d7" + } + }, + { + "scope": "meta.instance.constructor", + "settings": { + "foreground": "#76c5a4" + } + }, + { + "scope": "meta.attribute-with-value.class string", + "settings": { + "foreground": "#76c5a4" + } + }, + { + "scope": "meta.attribute-with-value.id string", + "settings": { + "foreground": "#fdad5d" + } + }, + { + "scope": [ + "source.json meta.structure.dictionary", + "source.json meta.structure.dictionary meta.structure.dictionary.value meta.structure.dictionary", + "source.json meta.structure.dictionary meta.structure.dictionary.value meta.structure.dictionary meta.structure.dictionary.value meta.structure.dictionary", + "source.json meta.structure.dictionary meta.structure.dictionary.value meta.structure.dictionary meta.structure.dictionary.value meta.structure.dictionary meta.structure.dictionary.value meta.structure.dictionary", + "source.json meta.structure.dictionary meta.structure.dictionary.value meta.structure.dictionary meta.structure.dictionary.value meta.structure.dictionary meta.structure.dictionary.value meta.structure.dictionary meta.structure.dictionary.value meta.structure.dictionary", + "source.json meta.structure.dictionary meta.structure.dictionary.value meta.structure.dictionary meta.structure.dictionary.value meta.structure.dictionary meta.structure.dictionary.value meta.structure.dictionary meta.structure.dictionary.value meta.structure.dictionary meta.structure.dictionary.value meta.structure.dictionary", + "source.json meta.structure.dictionary meta.structure.dictionary.value meta.structure.dictionary meta.structure.dictionary.value meta.structure.dictionary meta.structure.dictionary.value meta.structure.dictionary meta.structure.dictionary.value meta.structure.dictionary meta.structure.dictionary.value meta.structure.dictionary meta.structure.dictionary.value meta.structure.dictionary", + "source.json meta.structure.dictionary meta.structure.dictionary.value meta.structure.dictionary meta.structure.dictionary.value meta.structure.dictionary meta.structure.dictionary.value meta.structure.dictionary meta.structure.dictionary.value meta.structure.dictionary meta.structure.dictionary.value meta.structure.dictionary meta.structure.dictionary.value meta.structure.dictionary meta.structure.dictionary.value meta.structure.dictionary", + "source.json meta.structure.dictionary meta.structure.dictionary.value meta.structure.dictionary meta.structure.dictionary.value meta.structure.dictionary meta.structure.dictionary.value meta.structure.dictionary meta.structure.dictionary.value meta.structure.dictionary meta.structure.dictionary.value meta.structure.dictionary meta.structure.dictionary.value meta.structure.dictionary meta.structure.dictionary.value meta.structure.dictionary meta.structure.dictionary.value meta.structure.dictionary", + "source.json meta.structure.dictionary meta.structure.dictionary.value meta.structure.dictionary meta.structure.dictionary.value meta.structure.dictionary meta.structure.dictionary.value meta.structure.dictionary meta.structure.dictionary.value meta.structure.dictionary meta.structure.dictionary.value meta.structure.dictionary meta.structure.dictionary.value meta.structure.dictionary meta.structure.dictionary.value meta.structure.dictionary meta.structure.dictionary.value meta.structure.dictionary meta.structure.dictionary.value meta.structure.dictionary", + "source.json meta.structure.dictionary meta.structure.dictionary.value meta.structure.dictionary meta.structure.dictionary.value meta.structure.dictionary meta.structure.dictionary.value meta.structure.dictionary meta.structure.dictionary.value meta.structure.dictionary meta.structure.dictionary.value meta.structure.dictionary meta.structure.dictionary.value meta.structure.dictionary meta.structure.dictionary.value meta.structure.dictionary meta.structure.dictionary.value meta.structure.dictionary meta.structure.dictionary.value meta.structure.dictionary meta.structure.dictionary.value meta.structure.dictionary", + "source.json meta.structure.dictionary meta.structure.dictionary.value meta.structure.dictionary meta.structure.dictionary.value meta.structure.dictionary meta.structure.dictionary.value meta.structure.dictionary meta.structure.dictionary.value meta.structure.dictionary meta.structure.dictionary.value meta.structure.dictionary meta.structure.dictionary.value meta.structure.dictionary meta.structure.dictionary.value meta.structure.dictionary meta.structure.dictionary.value meta.structure.dictionary meta.structure.dictionary.value meta.structure.dictionary meta.structure.dictionary.value meta.structure.dictionary meta.structure.dictionary.value meta.structure.dictionary", + "source.json meta.structure.dictionary meta.structure.dictionary.value meta.structure.dictionary meta.structure.dictionary.value meta.structure.dictionary meta.structure.dictionary.value meta.structure.dictionary meta.structure.dictionary.value meta.structure.dictionary meta.structure.dictionary.value meta.structure.dictionary meta.structure.dictionary.value meta.structure.dictionary meta.structure.dictionary.value meta.structure.dictionary meta.structure.dictionary.value meta.structure.dictionary meta.structure.dictionary.value meta.structure.dictionary meta.structure.dictionary.value meta.structure.dictionary meta.structure.dictionary.value meta.structure.dictionary meta.structure.dictionary.value meta.structure.dictionary", + "source.json meta.structure.dictionary meta.structure.dictionary.value meta.structure.dictionary meta.structure.dictionary.value meta.structure.dictionary meta.structure.dictionary.value meta.structure.dictionary meta.structure.dictionary.value meta.structure.dictionary meta.structure.dictionary.value meta.structure.dictionary meta.structure.dictionary.value meta.structure.dictionary meta.structure.dictionary.value meta.structure.dictionary meta.structure.dictionary.value meta.structure.dictionary meta.structure.dictionary.value meta.structure.dictionary meta.structure.dictionary.value meta.structure.dictionary meta.structure.dictionary.value meta.structure.dictionary meta.structure.dictionary.value meta.structure.dictionary meta.structure.dictionary.value meta.structure.dictionary", + "source.json meta.structure.dictionary meta.structure.dictionary.value meta.structure.dictionary meta.structure.dictionary.value meta.structure.dictionary meta.structure.dictionary.value meta.structure.dictionary meta.structure.dictionary.value meta.structure.dictionary meta.structure.dictionary.value meta.structure.dictionary meta.structure.dictionary.value meta.structure.dictionary meta.structure.dictionary.value meta.structure.dictionary meta.structure.dictionary.value meta.structure.dictionary meta.structure.dictionary.value meta.structure.dictionary meta.structure.dictionary.value meta.structure.dictionary meta.structure.dictionary.value meta.structure.dictionary meta.structure.dictionary.value meta.structure.dictionary meta.structure.dictionary.value meta.structure.dictionary meta.structure.dictionary.value meta.structure.dictionary", + "source.json meta.structure.dictionary meta.structure.dictionary.value meta.structure.dictionary meta.structure.dictionary.value meta.structure.dictionary meta.structure.dictionary.value meta.structure.dictionary meta.structure.dictionary.value meta.structure.dictionary meta.structure.dictionary.value meta.structure.dictionary meta.structure.dictionary.value meta.structure.dictionary meta.structure.dictionary.value meta.structure.dictionary meta.structure.dictionary.value meta.structure.dictionary meta.structure.dictionary.value meta.structure.dictionary meta.structure.dictionary.value meta.structure.dictionary meta.structure.dictionary.value meta.structure.dictionary meta.structure.dictionary.value meta.structure.dictionary meta.structure.dictionary.value meta.structure.dictionary meta.structure.dictionary.value meta.structure.dictionary meta.structure.dictionary.value meta.structure.dictionary", + "source.json meta.structure.dictionary string", + "source.json meta.structure.dictionary meta.structure.dictionary.value meta.structure.dictionary string", + "source.json meta.structure.dictionary meta.structure.dictionary.value meta.structure.dictionary meta.structure.dictionary.value meta.structure.dictionary string", + "source.json meta.structure.dictionary meta.structure.dictionary.value meta.structure.dictionary meta.structure.dictionary.value meta.structure.dictionary meta.structure.dictionary.value meta.structure.dictionary string", + "source.json meta.structure.dictionary meta.structure.dictionary.value meta.structure.dictionary meta.structure.dictionary.value meta.structure.dictionary meta.structure.dictionary.value meta.structure.dictionary meta.structure.dictionary.value meta.structure.dictionary string", + "source.json meta.structure.dictionary meta.structure.dictionary.value meta.structure.dictionary meta.structure.dictionary.value meta.structure.dictionary meta.structure.dictionary.value meta.structure.dictionary meta.structure.dictionary.value meta.structure.dictionary meta.structure.dictionary.value meta.structure.dictionary string", + "source.json meta.structure.dictionary meta.structure.dictionary.value meta.structure.dictionary meta.structure.dictionary.value meta.structure.dictionary meta.structure.dictionary.value meta.structure.dictionary meta.structure.dictionary.value meta.structure.dictionary meta.structure.dictionary.value meta.structure.dictionary meta.structure.dictionary.value meta.structure.dictionary string", + "source.json meta.structure.dictionary meta.structure.dictionary.value meta.structure.dictionary meta.structure.dictionary.value meta.structure.dictionary meta.structure.dictionary.value meta.structure.dictionary meta.structure.dictionary.value meta.structure.dictionary meta.structure.dictionary.value meta.structure.dictionary meta.structure.dictionary.value meta.structure.dictionary meta.structure.dictionary.value meta.structure.dictionary string", + "source.json meta.structure.dictionary meta.structure.dictionary.value meta.structure.dictionary meta.structure.dictionary.value meta.structure.dictionary meta.structure.dictionary.value meta.structure.dictionary meta.structure.dictionary.value meta.structure.dictionary meta.structure.dictionary.value meta.structure.dictionary meta.structure.dictionary.value meta.structure.dictionary meta.structure.dictionary.value meta.structure.dictionary meta.structure.dictionary.value meta.structure.dictionary string", + "source.json meta.structure.dictionary meta.structure.dictionary.value meta.structure.dictionary meta.structure.dictionary.value meta.structure.dictionary meta.structure.dictionary.value meta.structure.dictionary meta.structure.dictionary.value meta.structure.dictionary meta.structure.dictionary.value meta.structure.dictionary meta.structure.dictionary.value meta.structure.dictionary meta.structure.dictionary.value meta.structure.dictionary meta.structure.dictionary.value meta.structure.dictionary meta.structure.dictionary.value meta.structure.dictionary string", + "source.json meta.structure.dictionary meta.structure.dictionary.value meta.structure.dictionary meta.structure.dictionary.value meta.structure.dictionary meta.structure.dictionary.value meta.structure.dictionary meta.structure.dictionary.value meta.structure.dictionary meta.structure.dictionary.value meta.structure.dictionary meta.structure.dictionary.value meta.structure.dictionary meta.structure.dictionary.value meta.structure.dictionary meta.structure.dictionary.value meta.structure.dictionary meta.structure.dictionary.value meta.structure.dictionary meta.structure.dictionary.value meta.structure.dictionary string", + "source.json meta.structure.dictionary meta.structure.dictionary.value meta.structure.dictionary meta.structure.dictionary.value meta.structure.dictionary meta.structure.dictionary.value meta.structure.dictionary meta.structure.dictionary.value meta.structure.dictionary meta.structure.dictionary.value meta.structure.dictionary meta.structure.dictionary.value meta.structure.dictionary meta.structure.dictionary.value meta.structure.dictionary meta.structure.dictionary.value meta.structure.dictionary meta.structure.dictionary.value meta.structure.dictionary meta.structure.dictionary.value meta.structure.dictionary meta.structure.dictionary.value meta.structure.dictionary string", + "source.json meta.structure.dictionary meta.structure.dictionary.value meta.structure.dictionary meta.structure.dictionary.value meta.structure.dictionary meta.structure.dictionary.value meta.structure.dictionary meta.structure.dictionary.value meta.structure.dictionary meta.structure.dictionary.value meta.structure.dictionary meta.structure.dictionary.value meta.structure.dictionary meta.structure.dictionary.value meta.structure.dictionary meta.structure.dictionary.value meta.structure.dictionary meta.structure.dictionary.value meta.structure.dictionary meta.structure.dictionary.value meta.structure.dictionary meta.structure.dictionary.value meta.structure.dictionary meta.structure.dictionary.value meta.structure.dictionary string", + "source.json meta.structure.dictionary meta.structure.dictionary.value meta.structure.dictionary meta.structure.dictionary.value meta.structure.dictionary meta.structure.dictionary.value meta.structure.dictionary meta.structure.dictionary.value meta.structure.dictionary meta.structure.dictionary.value meta.structure.dictionary meta.structure.dictionary.value meta.structure.dictionary meta.structure.dictionary.value meta.structure.dictionary meta.structure.dictionary.value meta.structure.dictionary meta.structure.dictionary.value meta.structure.dictionary meta.structure.dictionary.value meta.structure.dictionary meta.structure.dictionary.value meta.structure.dictionary meta.structure.dictionary.value meta.structure.dictionary meta.structure.dictionary.value meta.structure.dictionary string", + "source.json meta.structure.dictionary meta.structure.dictionary.value meta.structure.dictionary meta.structure.dictionary.value meta.structure.dictionary meta.structure.dictionary.value meta.structure.dictionary meta.structure.dictionary.value meta.structure.dictionary meta.structure.dictionary.value meta.structure.dictionary meta.structure.dictionary.value meta.structure.dictionary meta.structure.dictionary.value meta.structure.dictionary meta.structure.dictionary.value meta.structure.dictionary meta.structure.dictionary.value meta.structure.dictionary meta.structure.dictionary.value meta.structure.dictionary meta.structure.dictionary.value meta.structure.dictionary meta.structure.dictionary.value meta.structure.dictionary meta.structure.dictionary.value meta.structure.dictionary meta.structure.dictionary.value meta.structure.dictionary string", + "source.json meta.structure.dictionary meta.structure.dictionary.value meta.structure.dictionary meta.structure.dictionary.value meta.structure.dictionary meta.structure.dictionary.value meta.structure.dictionary meta.structure.dictionary.value meta.structure.dictionary meta.structure.dictionary.value meta.structure.dictionary meta.structure.dictionary.value meta.structure.dictionary meta.structure.dictionary.value meta.structure.dictionary meta.structure.dictionary.value meta.structure.dictionary meta.structure.dictionary.value meta.structure.dictionary meta.structure.dictionary.value meta.structure.dictionary meta.structure.dictionary.value meta.structure.dictionary meta.structure.dictionary.value meta.structure.dictionary meta.structure.dictionary.value meta.structure.dictionary meta.structure.dictionary.value meta.structure.dictionary meta.structure.dictionary.value meta.structure.dictionary string" + ], + "settings": { + "foreground": "#d7d7d7" + } + }, + { + "scope": [ + "source.json meta.structure.dictionary.value string", + "source.json meta.structure.dictionary.value meta.structure.dictionary meta.structure.dictionary.value string", + "source.json meta.structure.dictionary.value meta.structure.dictionary meta.structure.dictionary.value meta.structure.dictionary meta.structure.dictionary.value string", + "source.json meta.structure.dictionary.value meta.structure.dictionary meta.structure.dictionary.value meta.structure.dictionary meta.structure.dictionary.value meta.structure.dictionary meta.structure.dictionary.value string", + "source.json meta.structure.dictionary.value meta.structure.dictionary meta.structure.dictionary.value meta.structure.dictionary meta.structure.dictionary.value meta.structure.dictionary meta.structure.dictionary.value meta.structure.dictionary meta.structure.dictionary.value string", + "source.json meta.structure.dictionary.value meta.structure.dictionary meta.structure.dictionary.value meta.structure.dictionary meta.structure.dictionary.value meta.structure.dictionary meta.structure.dictionary.value meta.structure.dictionary meta.structure.dictionary.value meta.structure.dictionary meta.structure.dictionary.value string", + "source.json meta.structure.dictionary.value meta.structure.dictionary meta.structure.dictionary.value meta.structure.dictionary meta.structure.dictionary.value meta.structure.dictionary meta.structure.dictionary.value meta.structure.dictionary meta.structure.dictionary.value meta.structure.dictionary meta.structure.dictionary.value meta.structure.dictionary meta.structure.dictionary.value string", + "source.json meta.structure.dictionary.value meta.structure.dictionary meta.structure.dictionary.value meta.structure.dictionary meta.structure.dictionary.value meta.structure.dictionary meta.structure.dictionary.value meta.structure.dictionary meta.structure.dictionary.value meta.structure.dictionary meta.structure.dictionary.value meta.structure.dictionary meta.structure.dictionary.value meta.structure.dictionary meta.structure.dictionary.value string", + "source.json meta.structure.dictionary.value meta.structure.dictionary meta.structure.dictionary.value meta.structure.dictionary meta.structure.dictionary.value meta.structure.dictionary meta.structure.dictionary.value meta.structure.dictionary meta.structure.dictionary.value meta.structure.dictionary meta.structure.dictionary.value meta.structure.dictionary meta.structure.dictionary.value meta.structure.dictionary meta.structure.dictionary.value meta.structure.dictionary meta.structure.dictionary.value string", + "source.json meta.structure.dictionary.value meta.structure.dictionary meta.structure.dictionary.value meta.structure.dictionary meta.structure.dictionary.value meta.structure.dictionary meta.structure.dictionary.value meta.structure.dictionary meta.structure.dictionary.value meta.structure.dictionary meta.structure.dictionary.value meta.structure.dictionary meta.structure.dictionary.value meta.structure.dictionary meta.structure.dictionary.value meta.structure.dictionary meta.structure.dictionary.value meta.structure.dictionary meta.structure.dictionary.value string", + "source.json meta.structure.dictionary.value meta.structure.dictionary meta.structure.dictionary.value meta.structure.dictionary meta.structure.dictionary.value meta.structure.dictionary meta.structure.dictionary.value meta.structure.dictionary meta.structure.dictionary.value meta.structure.dictionary meta.structure.dictionary.value meta.structure.dictionary meta.structure.dictionary.value meta.structure.dictionary meta.structure.dictionary.value meta.structure.dictionary meta.structure.dictionary.value meta.structure.dictionary meta.structure.dictionary.value meta.structure.dictionary meta.structure.dictionary.value string", + "source.json meta.structure.dictionary.value meta.structure.dictionary meta.structure.dictionary.value meta.structure.dictionary meta.structure.dictionary.value meta.structure.dictionary meta.structure.dictionary.value meta.structure.dictionary meta.structure.dictionary.value meta.structure.dictionary meta.structure.dictionary.value meta.structure.dictionary meta.structure.dictionary.value meta.structure.dictionary meta.structure.dictionary.value meta.structure.dictionary meta.structure.dictionary.value meta.structure.dictionary meta.structure.dictionary.value meta.structure.dictionary meta.structure.dictionary.value meta.structure.dictionary meta.structure.dictionary.value string", + "source.json meta.structure.dictionary.value meta.structure.dictionary meta.structure.dictionary.value meta.structure.dictionary meta.structure.dictionary.value meta.structure.dictionary meta.structure.dictionary.value meta.structure.dictionary meta.structure.dictionary.value meta.structure.dictionary meta.structure.dictionary.value meta.structure.dictionary meta.structure.dictionary.value meta.structure.dictionary meta.structure.dictionary.value meta.structure.dictionary meta.structure.dictionary.value meta.structure.dictionary meta.structure.dictionary.value meta.structure.dictionary meta.structure.dictionary.value meta.structure.dictionary meta.structure.dictionary.value meta.structure.dictionary meta.structure.dictionary.value string", + "source.json meta.structure.dictionary.value meta.structure.dictionary meta.structure.dictionary.value meta.structure.dictionary meta.structure.dictionary.value meta.structure.dictionary meta.structure.dictionary.value meta.structure.dictionary meta.structure.dictionary.value meta.structure.dictionary meta.structure.dictionary.value meta.structure.dictionary meta.structure.dictionary.value meta.structure.dictionary meta.structure.dictionary.value meta.structure.dictionary meta.structure.dictionary.value meta.structure.dictionary meta.structure.dictionary.value meta.structure.dictionary meta.structure.dictionary.value meta.structure.dictionary meta.structure.dictionary.value meta.structure.dictionary meta.structure.dictionary.value meta.structure.dictionary meta.structure.dictionary.value string", + "source.json meta.structure.dictionary.value meta.structure.dictionary meta.structure.dictionary.value meta.structure.dictionary meta.structure.dictionary.value meta.structure.dictionary meta.structure.dictionary.value meta.structure.dictionary meta.structure.dictionary.value meta.structure.dictionary meta.structure.dictionary.value meta.structure.dictionary meta.structure.dictionary.value meta.structure.dictionary meta.structure.dictionary.value meta.structure.dictionary meta.structure.dictionary.value meta.structure.dictionary meta.structure.dictionary.value meta.structure.dictionary meta.structure.dictionary.value meta.structure.dictionary meta.structure.dictionary.value meta.structure.dictionary meta.structure.dictionary.value meta.structure.dictionary meta.structure.dictionary.value meta.structure.dictionary meta.structure.dictionary.value string", + "source.json meta.structure.dictionary.value meta.structure.dictionary meta.structure.dictionary.value meta.structure.dictionary meta.structure.dictionary.value meta.structure.dictionary meta.structure.dictionary.value meta.structure.dictionary meta.structure.dictionary.value meta.structure.dictionary meta.structure.dictionary.value meta.structure.dictionary meta.structure.dictionary.value meta.structure.dictionary meta.structure.dictionary.value meta.structure.dictionary meta.structure.dictionary.value meta.structure.dictionary meta.structure.dictionary.value meta.structure.dictionary meta.structure.dictionary.value meta.structure.dictionary meta.structure.dictionary.value meta.structure.dictionary meta.structure.dictionary.value meta.structure.dictionary meta.structure.dictionary.value meta.structure.dictionary meta.structure.dictionary.value meta.structure.dictionary meta.structure.dictionary.value string" + ], + "settings": { + "foreground": "#fb7da7" + } + }, + { + "scope": "meta.object.member", + "settings": { + "foreground": "#d7d7d7" + } + }, + { + "scope": "meta.property-list.css variable.other", + "settings": { + "foreground": "#fdad5d" + } + }, + { + "scope": ["entity.name.constant.preprocessor", "meta.preprocessor"], + "settings": { + "foreground": "#af98e6" + } + }, + { + "scope": "meta.diff.git-diff.header", + "settings": { + "foreground": "#fb7da7" + } + }, + { + "scope": "punctuation", + "settings": { + "foreground": "#88898f" + } + }, + { + "scope": [ + "punctuation.definition.tag", + "punctuation.definition.tag source", + "punctuation.definition.group.begin.ruby", + "punctuation.definition.group.end.ruby" + ], + "settings": { + "foreground": "#88898f" + } + }, + { + "scope": "punctuation.definition.group", + "settings": { + "foreground": "#d7d7d7" + } + }, + { + "scope": "punctuation.definition.comment", + "settings": { + "foreground": "#5e6173" + } + }, + { + "scope": [ + "punctuation.definition.variable", + "punctuation.definition.keyword.scss", + "punctuation.definition.entity.css" + ], + "settings": { + "foreground": "#c3b5d3" + } + }, + { + "scope": [ + "punctuation.section.embedded", + "punctuation.section.embedded entity.name.tag", + "punctuation.section.embedded constant.other", + "punctuation.section.embedded source" + ], + "settings": { + "foreground": "#fdad5d" + } + }, + { + "scope": [ + "punctuation.template-string.element.begin", + "punctuation.template-string.element.end", + "punctuation.definition.string.template.begin", + "punctuation.definition.string.template.end", + "string.quoted.template punctuation.definition.string.begin", + "string.quoted.template punctuation.definition.string.end" + ], + "settings": { + "foreground": "#fb7da7" + } + }, + { + "scope": [ + "meta.paragraph.markdown meta.dummy.line-break", + "meta.paragraph.markdown meta.hard-line-break.markdown" + ], + "settings": { + "background": "#af98e6" + } + }, + { + "scope": "region.redish", + "settings": { + "foreground": "#fb7da7" + } + }, + { + "scope": "region.orangish", + "settings": { + "foreground": "#fdad5d" + } + }, + { + "scope": "region.yellowish", + "settings": { + "foreground": "#e3cf65" + } + }, + { + "scope": "region.greenish", + "settings": { + "foreground": "#76c5a4" + } + }, + { + "scope": "region.bluish", + "settings": { + "foreground": "#51c7da" + } + }, + { + "scope": "region.purplish", + "settings": { + "foreground": "#af98e6" + } + }, + { + "scope": "region.pinkish", + "settings": { + "foreground": "#fb7da7" + } + }, + { + "scope": "region.whitish", + "settings": { + "foreground": "#dfdfdf" + } + }, + { + "scope": "source", + "settings": { + "foreground": "#d7d7d7" + } + }, + { + "scope": ["source.scss", "source.sass"], + "settings": { + "foreground": "#88898f" + } + }, + { + "scope": [ + "source.sass variable.other", + "source.sass variable.sass", + "source.scss variable.other", + "source.scss variable.scss", + "source.scss variable.sass", + "source.css variable.other", + "source.css variable.scss", + "source.less variable.other", + "source.less variable.other.less", + "source.less variable.declaration.less" + ], + "settings": { + "fontStyle": "normal", + "foreground": "#fdad5d" + } + }, + { + "scope": "source.git-show.commit.sha", + "settings": { + "foreground": "#af98e6" + } + }, + { + "scope": [ + "source.git-show.author", + "source.git-show.date", + "source.git-diff.command", + "source.git-diff.command meta.diff.git-diff.header.from-file", + "source.git-diff.command meta.diff.git-diff.header.to-file" + ], + "settings": { + "foreground": "#88898f" + } + }, + { + "scope": [ + "source.git-show meta.diff.git-diff.header.extended.index.from-sha", + "source.git-show meta.diff.git-diff.header.extended.index.to-sha" + ], + "settings": { + "foreground": "#af98e6" + } + }, + { + "scope": "source.git-show meta.diff.range.unified", + "settings": { + "foreground": "#fdad5d" + } + }, + { + "scope": [ + "source.git-show meta.diff.header.from-file", + "source.git-show meta.diff.header.to-file" + ], + "settings": { + "foreground": "#88898f" + } + }, + { + "scope": "storage", + "settings": { + "foreground": "#fb7da7" + } + }, + { + "scope": "storage.type", + "settings": { + "fontStyle": "normal", + "foreground": "#51c7da" + } + }, + { + "scope": "storage.type.extends", + "settings": { + "fontStyle": "normal", + "foreground": "#fb7da7" + } + }, + { + "scope": "storage.type.function.arrow", + "settings": { + "fontStyle": "normal", + "foreground": "#fb7da7" + } + }, + { + "scope": "storage.modifier", + "settings": { + "fontStyle": "normal", + "foreground": "#fb7da7" + } + }, + { + "scope": "storage.class.restructuredtext.ref", + "settings": { + "foreground": "#af98e6" + } + }, + { + "scope": ["storage.modifier.package", "storage.modifier.import"], + "settings": { + "foreground": "#d7d7d7" + } + }, + { + "scope": "string", + "settings": { + "foreground": "#e3cf65" + } + }, + { + "scope": "string.unquoted.label", + "settings": { + "foreground": "#d7d7d7" + } + }, + { + "scope": "string source", + "settings": { + "foreground": "#d7d7d7" + } + }, + { + "scope": "string source punctuation.section.embedded", + "settings": { + "foreground": "#88898f" + } + }, + { + "scope": ["string.other.link.title", "string.other.link.description"], + "settings": { + "foreground": "#fb7da7" + } + }, + { + "scope": "string.other.link.description.title", + "settings": { + "foreground": "#51c7da" + } + }, + { + "scope": [ + "string.regexp punctuation.definition.string.begin", + "string.regexp punctuation.definition.string.end" + ], + "settings": { + "foreground": "#fb7da7" + } + }, + { + "scope": ["string.other.ref", "string.other.restructuredtext.ref"], + "settings": { + "foreground": "#76c5a4" + } + }, + { + "scope": "string.other.git-status.help.key", + "settings": { + "foreground": "#c3b5d3" + } + }, + { + "scope": "string.other.git-status.remote", + "settings": { + "foreground": "#fb7da7" + } + }, + { + "scope": "support.constant", + "settings": { + "foreground": "#51c7da" + } + }, + { + "scope": "support.constant.handlebars", + "settings": { + "foreground": "#88898f" + } + }, + { + "scope": "support.function", + "settings": { + "foreground": "#76c5a4" + } + }, + { + "scope": ["support.type", "entity.name.type.object.console"], + "settings": { + "fontStyle": "normal", + "foreground": "#51c7da" + } + }, + { + "scope": "support.variable", + "settings": { + "foreground": "#51c7da" + } + }, + { + "scope": "support.type.property-name", + "settings": { + "fontStyle": "normal", + "foreground": "#d7d7d7" + } + }, + { + "scope": "support.class", + "settings": { + "foreground": "#51c7da" + } + }, + { + "scope": "text", + "settings": { + "foreground": "#d7d7d7" + } + }, + { + "scope": "text.find-in-files", + "settings": { + "foreground": "#d7d7d7" + } + }, + { + "scope": ["variable", "variable.other"], + "settings": { + "foreground": "#d7d7d7" + } + }, + { + "scope": ["variable.parameter", "parameters variable.function"], + "settings": { + "fontStyle": "normal", + "foreground": "#fdad5d" + } + }, + { + "scope": [ + "variable.language", + "variable.parameter.function.language.special.self.python" + ], + "settings": { + "fontStyle": "normal", + "foreground": "#c3b5d3" + } + }, + { + "scope": "variable.language.arguments", + "settings": { + "foreground": "#af98e6" + } + }, + { + "scope": "variable.other.class", + "settings": { + "foreground": "#51c7da" + } + }, + { + "scope": "variable.other.constant", + "settings": { + "foreground": "#af98e6" + } + }, + { + "scope": "variable.other.member", + "settings": { + "foreground": "#d7d7d7" + } + }, + { + "scope": "variable.function", + "settings": { + "foreground": "#76c5a4" + } + }, + { + "scope": "variable.other.substitution", + "settings": { + "foreground": "#fdad5d" + } + }, + { + "scope": [ + "source.ruby variable.other.readwrite.instance.ruby", + "source.ruby variable.other.readwrite.class.ruby" + ], + "settings": { + "foreground": "#af98e6" + } + } + ] +} diff --git a/packages/website/tailwind.config.js b/packages/website/tailwind.config.js index 7c37f4a96..c1d571094 100644 --- a/packages/website/tailwind.config.js +++ b/packages/website/tailwind.config.js @@ -18,6 +18,7 @@ export default { fontFamily: { serif: ['"Alegreya"', 'serif'], sans: ['"Nunito"', 'sans-serif'], + mono: ['"Fira Code"', 'monospace'], }, extend: { backgroundImage: { diff --git a/packages/website/tsconfig.json b/packages/website/tsconfig.json index d14db78e2..8ca4e4344 100644 --- a/packages/website/tsconfig.json +++ b/packages/website/tsconfig.json @@ -2,9 +2,11 @@ "extends": "../../tsconfig.json", "compilerOptions": { "rootDir": "./src", - "outDir": "./dist" + "outDir": "./dist", + "resolveJsonModule": true, + "skipLibCheck": true }, - "include": ["src"], + "include": ["src", "src/theme.json"], "references": [ { "path": "../waku" diff --git a/packages/website/vite.config.ts b/packages/website/vite.config.ts index 7dd47e52b..12421378a 100644 --- a/packages/website/vite.config.ts +++ b/packages/website/vite.config.ts @@ -8,5 +8,8 @@ export default ({ mode }) => { return defineConfig({ root: path.dirname(url.fileURLToPath(import.meta.url)), + ssr: { + external: ['next-mdx-remote'], + }, }); }; diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 7a95913fe..8e3bd2d7c 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -1,5 +1,9 @@ lockfileVersion: '6.0' +settings: + autoInstallPeers: true + excludeLinksFromLockfile: false + importers: .: @@ -542,12 +546,18 @@ importers: packages/website: dependencies: + '@uidotdev/usehooks': + specifier: ^2.4.1 + version: 2.4.1(react-dom@18.3.0-canary-0e352ea01-20231109)(react@18.3.0-canary-0e352ea01-20231109) bright: specifier: ^0.8.4 version: 0.8.4(react@18.3.0-canary-0e352ea01-20231109) express: specifier: ^4.18.2 version: 4.18.2 + next-mdx-remote: + specifier: ^4.4.1 + version: 4.4.1(react-dom@18.3.0-canary-0e352ea01-20231109)(react@18.3.0-canary-0e352ea01-20231109) react: specifier: 18.3.0-canary-0e352ea01-20231109 version: 18.3.0-canary-0e352ea01-20231109 @@ -1124,6 +1134,40 @@ packages: '@jridgewell/resolve-uri': 3.1.1 '@jridgewell/sourcemap-codec': 1.4.15 + /@mdx-js/mdx@2.3.0: + resolution: {integrity: sha512-jLuwRlz8DQfQNiUCJR50Y09CGPq3fLtmtUQfVrj79E0JWu3dvsVcxVIcfhR5h0iXu+/z++zDrYeiJqifRynJkA==} + dependencies: + '@types/estree-jsx': 1.0.3 + '@types/mdx': 2.0.10 + estree-util-build-jsx: 2.2.2 + estree-util-is-identifier-name: 2.1.0 + estree-util-to-js: 1.2.0 + estree-walker: 3.0.3 + hast-util-to-estree: 2.3.3 + markdown-extensions: 1.1.1 + periscopic: 3.1.0 + remark-mdx: 2.3.0 + remark-parse: 10.0.2 + remark-rehype: 10.1.0 + unified: 10.1.2 + unist-util-position-from-estree: 1.1.2 + unist-util-stringify-position: 3.0.3 + unist-util-visit: 4.1.2 + vfile: 5.3.7 + transitivePeerDependencies: + - supports-color + dev: false + + /@mdx-js/react@2.3.0(react@18.3.0-canary-0e352ea01-20231109): + resolution: {integrity: sha512-zQH//gdOmuu7nt2oJR29vFhDv88oGPmVw6BggmrHeMI+xgEkp1B2dX9/bMBSYtK0dyLX/aOmesKS09g222K1/g==} + peerDependencies: + react: '>=16' + dependencies: + '@types/mdx': 2.0.10 + '@types/react': 18.2.37 + react: 18.3.0-canary-0e352ea01-20231109 + dev: false + /@mole-inc/bin-wrapper@8.0.1: resolution: {integrity: sha512-sTGoeZnjI8N4KS+sW2AN95gDBErhAguvkw/tWdCjeM8bvxpz5lqrnd0vOJABA1A+Ic3zED7PYoLP/RANLgVotA==} engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} @@ -1301,6 +1345,7 @@ packages: cpu: [arm64] os: [darwin] requiresBuild: true + dev: true optional: true /@swc/core-darwin-x64@1.3.96: @@ -1309,6 +1354,7 @@ packages: cpu: [x64] os: [darwin] requiresBuild: true + dev: true optional: true /@swc/core-linux-arm-gnueabihf@1.3.96: @@ -1317,6 +1363,7 @@ packages: cpu: [arm] os: [linux] requiresBuild: true + dev: true optional: true /@swc/core-linux-arm64-gnu@1.3.96: @@ -1325,6 +1372,7 @@ packages: cpu: [arm64] os: [linux] requiresBuild: true + dev: true optional: true /@swc/core-linux-arm64-musl@1.3.96: @@ -1333,6 +1381,7 @@ packages: cpu: [arm64] os: [linux] requiresBuild: true + dev: true optional: true /@swc/core-linux-x64-gnu@1.3.96: @@ -1341,6 +1390,7 @@ packages: cpu: [x64] os: [linux] requiresBuild: true + dev: true optional: true /@swc/core-linux-x64-musl@1.3.96: @@ -1349,6 +1399,7 @@ packages: cpu: [x64] os: [linux] requiresBuild: true + dev: true optional: true /@swc/core-win32-arm64-msvc@1.3.96: @@ -1357,6 +1408,7 @@ packages: cpu: [arm64] os: [win32] requiresBuild: true + dev: true optional: true /@swc/core-win32-ia32-msvc@1.3.96: @@ -1365,6 +1417,7 @@ packages: cpu: [ia32] os: [win32] requiresBuild: true + dev: true optional: true /@swc/core-win32-x64-msvc@1.3.96: @@ -1373,6 +1426,7 @@ packages: cpu: [x64] os: [win32] requiresBuild: true + dev: true optional: true /@swc/core@1.3.96: @@ -1398,12 +1452,15 @@ packages: '@swc/core-win32-arm64-msvc': 1.3.96 '@swc/core-win32-ia32-msvc': 1.3.96 '@swc/core-win32-x64-msvc': 1.3.96 + dev: true /@swc/counter@0.1.2: resolution: {integrity: sha512-9F4ys4C74eSTEUNndnER3VJ15oru2NumfQxS8geE+f3eB5xvfxpWyqE5XlVnxb/R14uoXi6SLbBwwiDSkv+XEw==} + dev: true /@swc/types@0.1.5: resolution: {integrity: sha512-myfUej5naTBWnqOCc/MdVOLVjXUXtIA+NpDrDBKJtLLg2shUjBu3cZmB/85RyitKc55+lUUyl7oRfLOvkr2hsw==} + dev: true /@szmarczak/http-timer@4.0.6: resolution: {integrity: sha512-4BAffykYOgO+5nzBWYwE3W90sBgLJoUPRWWcL8wlyiM8IB8ipJz3UMJ9KXQd1RKQXpKp8Tutn80HZtWsu2u76w==} @@ -1416,6 +1473,12 @@ packages: resolution: {integrity: sha512-OvjF+z51L3ov0OyAU0duzsYuvO01PH7x4t6DJx+guahgTnBHkhJdG7soQeTSFLWN3efnHyibZ4Z8l2EuWwJN3A==} dev: true + /@types/acorn@4.0.6: + resolution: {integrity: sha512-veQTnWP+1D/xbxVrPC3zHnCZRjSrKfhbMUlEA43iMZLu7EsnTtkJklIuwrCPbOi8YkvDQAiW05VQQFvvz9oieQ==} + dependencies: + '@types/estree': 1.0.5 + dev: false + /@types/babel__core@7.20.4: resolution: {integrity: sha512-mLnSC22IC4vcWiuObSRjrLd9XcBTGf59vUSoq2jkQDJ/QQ8PMI9rSuzE+aEV8karUMbskw07bKYoUJCKTUaygg==} dependencies: @@ -1473,6 +1536,12 @@ packages: '@types/node': 20.9.0 dev: true + /@types/debug@4.1.12: + resolution: {integrity: sha512-vIChWdVG3LG1SMxEvI/AK+FWJthlrqlTu7fbrlywTkkaONwk/UAGaULXRlf8vkzFBLVm0zkMdCquhL5aOjhXPQ==} + dependencies: + '@types/ms': 0.7.34 + dev: false + /@types/eslint-scope@3.7.7: resolution: {integrity: sha512-MzMFlSLBqNF2gcHWO0G1vP/YQyfvrxZ0bF+u7mzUdZ1/xK4A4sru+nraZz5i3iEIk1l1uyicaDVTB4QbbEkAYg==} dependencies: @@ -1485,6 +1554,12 @@ packages: '@types/estree': 1.0.5 '@types/json-schema': 7.0.15 + /@types/estree-jsx@1.0.3: + resolution: {integrity: sha512-pvQ+TKeRHeiUGRhvYwRrQ/ISnohKkSJR14fT2yqyZ4e9K5vqc7hrtY2Y1Dw0ZwAzQ6DQsxsaCUuSIIi8v0Cq6w==} + dependencies: + '@types/estree': 1.0.5 + dev: false + /@types/estree@1.0.5: resolution: {integrity: sha512-/kYRxGDLWzHOB7q+wtSUQlFrtcdUccpfy+X+9iMBpHK8QLLhx2wIPYuS5DYtR9Wa/YlZAbIovy7qVdB1Aq6Lyw==} @@ -1513,6 +1588,12 @@ packages: '@types/node': 20.9.0 dev: true + /@types/hast@2.3.8: + resolution: {integrity: sha512-aMIqAlFd2wTIDZuvLbhUT+TGvMxrNC8ECUIVtH6xxy0sQLs3iu6NO8Kp/VT5je7i5ufnebXzdV1dNDMnvaH6IQ==} + dependencies: + '@types/unist': 2.0.10 + dev: false + /@types/http-cache-semantics@4.0.4: resolution: {integrity: sha512-1m0bIFVc7eJWyve9S0RnuRgcQqF/Xd5QsUZAZeQFr1Q3/p9JWoQQEqmVy+DPTNpGXwhgIetAoYF8JSc33q29QA==} dev: true @@ -1521,6 +1602,10 @@ packages: resolution: {integrity: sha512-D0CFMMtydbJAegzOyHjtiKPLlvnm3iTZyZRSZoLq2mRhDdmLfIWOCYPfQJ4cu2erKghU++QvjcUjp/5h7hESpA==} dev: true + /@types/js-yaml@4.0.9: + resolution: {integrity: sha512-k4MGaQl5TGo/iipqb2UDG2UwjXziSWkh0uysQelTlJpX1qGlpUZYm8PnO4DxG1qBomtJUdYJ6qR6xdIah10JLg==} + dev: false + /@types/json-schema@7.0.15: resolution: {integrity: sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA==} @@ -1540,6 +1625,16 @@ packages: '@types/node': 20.9.0 dev: true + /@types/mdast@3.0.15: + resolution: {integrity: sha512-LnwD+mUEfxWMa1QpDraczIn6k0Ee3SMicuYSSzS6ZYl2gKS09EClnJYGd8Du6rfc5r/GZEk5o1mRb8TaTj03sQ==} + dependencies: + '@types/unist': 2.0.10 + dev: false + + /@types/mdx@2.0.10: + resolution: {integrity: sha512-Rllzc5KHk0Al5/WANwgSPl1/CwjqCy+AZrGd78zuK+jO9aDM6ffblZ+zIjgPNAaEBmlO0RYDvLNh7wD0zKVgEg==} + dev: false + /@types/mime@1.3.5: resolution: {integrity: sha512-/pyBZWSLD2n0dcHE3hq8s8ZvcETHtEuF+3E7XVt0Ig2nvsVQXdghHVcEkIWjy9A0wKfTn97a/PSDYohKIlnP/w==} dev: true @@ -1548,6 +1643,10 @@ packages: resolution: {integrity: sha512-iJt33IQnVRkqeqC7PzBHPTC6fDlRNRW8vjrgqtScAhrmMwe8c4Eo7+fUGTa+XdWrpEgpyKWMYmi2dIwMAYRzPw==} dev: true + /@types/ms@0.7.34: + resolution: {integrity: sha512-nG96G3Wp6acyAgJqGasjODb+acrI7KltPiRxzHPXnP3NgI28bpQDRv53olbqGXbfcgF5aiiHmO3xpwEpS5Ld9g==} + dev: false + /@types/node@20.9.0: resolution: {integrity: sha512-nekiGu2NDb1BcVofVcEKMIwzlx4NjHlcjhoxxKBNLtz15Y1z7MYf549DFvkHSId02Ax6kGwWntIBPC3l/JZcmw==} dependencies: @@ -1562,7 +1661,6 @@ packages: /@types/prop-types@15.7.10: resolution: {integrity: sha512-mxSnDQxPqsZxmeShFH+uwQ4kO4gcJcGahjjMFeLbKE95IAZiiZyiEepGZjtXJ7hN/yfu0bu9xN2ajcU0JcxX6A==} - dev: true /@types/qs@6.9.10: resolution: {integrity: sha512-3Gnx08Ns1sEoCrWssEgTSJs/rsT2vhGP+Ja9cnnk9k4ALxinORlQneLXFeFKOTJMOeZUFD1s7w+w2AphTpvzZw==} @@ -1584,7 +1682,6 @@ packages: '@types/prop-types': 15.7.10 '@types/scheduler': 0.16.6 csstype: 3.1.2 - dev: true /@types/responselike@1.0.3: resolution: {integrity: sha512-H/+L+UkTV33uf49PH5pCAUBVPNj2nDBXTN+qS1dOwyyg24l3CcicicCA7ca+HMvJBZcFgl5r8e+RR6elsb4Lyw==} @@ -1594,7 +1691,6 @@ packages: /@types/scheduler@0.16.6: resolution: {integrity: sha512-Vlktnchmkylvc9SnwwwozTv04L/e1NykF5vgoQ0XTmI8DD+wxfjQuHuvHS3p0r2jz2x2ghPs2h1FVeDirIteWA==} - dev: true /@types/semver@7.5.5: resolution: {integrity: sha512-+d+WYC1BxJ6yVOgUgzK8gWvp5qF8ssV5r4nsDcZWKRWcDQLQ619tvWAxJQYGgBrO1MnLJC7a5GtiYsAoQ47dJg==} @@ -1615,6 +1711,10 @@ packages: '@types/node': 20.9.0 dev: true + /@types/unist@2.0.10: + resolution: {integrity: sha512-IfYcSBWE3hLpBg8+X2SEa8LVkJdJEkT2Ese2aaLs3ptGdVtABxndrMaxuFlQ1qdFf9Q5rDvDpxI3WwgvKFAsQA==} + dev: false + /@typescript-eslint/eslint-plugin@6.10.0(@typescript-eslint/parser@6.10.0)(eslint@8.53.0)(typescript@5.2.2): resolution: {integrity: sha512-uoLj4g2OTL8rfUQVx2AFO1hp/zja1wABJq77P6IclQs6I/m9GLrm7jCdgzZkvWdDCQf1uEvoa8s8CupsgWQgVg==} engines: {node: ^16.0.0 || >=18.0.0} @@ -1746,6 +1846,17 @@ packages: eslint-visitor-keys: 3.4.3 dev: true + /@uidotdev/usehooks@2.4.1(react-dom@18.3.0-canary-0e352ea01-20231109)(react@18.3.0-canary-0e352ea01-20231109): + resolution: {integrity: sha512-1I+RwWyS+kdv3Mv0Vmc+p0dPYH0DTRAo04HLyXReYBL9AeseDWUJyi4THuksBJcu9F0Pih69Ak150VDnqbVnXg==} + engines: {node: '>=16'} + peerDependencies: + react: '>=18.0.0' + react-dom: '>=18.0.0' + dependencies: + react: 18.3.0-canary-0e352ea01-20231109 + react-dom: 18.3.0-canary-0e352ea01-20231109(react@18.3.0-canary-0e352ea01-20231109) + dev: false + /@ungap/structured-clone@1.2.0: resolution: {integrity: sha512-zuVdFrMJiuCDQUMCzQaD6KL28MjnqqN8XnAqiEq9PNm/hCPTSGfrXCOfwj1ow4LFb/tNymJPwsNbVePc1xFqrQ==} dev: true @@ -1883,7 +1994,6 @@ packages: acorn: ^6.0.0 || ^7.0.0 || ^8.0.0 dependencies: acorn: 8.11.2 - dev: true /acorn-loose@8.3.0: resolution: {integrity: sha512-75lAs9H19ldmW+fAbyqHdjgdCrz0pWGXKmnqFoh8PyVd1L2RIb4RzYrSjmopeqv3E1G3/Pimu6GgLlrGbrkF7w==} @@ -1960,7 +2070,6 @@ packages: /argparse@2.0.1: resolution: {integrity: sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==} - dev: true /array-buffer-byte-length@1.0.0: resolution: {integrity: sha512-LPuwb2P+NrQw3XhxGc36+XSvuBPopovXYTR9Ew++Du9Yb/bx5AzBfrIsBoj0EZUifjQU+sHL21sseZ3jerWO/A==} @@ -2042,6 +2151,11 @@ packages: is-shared-array-buffer: 1.0.2 dev: true + /astring@1.8.6: + resolution: {integrity: sha512-ISvCdHdlTDlH5IpxQJIex7BWBywFWgjJSVdwst+/iQCoEYnyOaQ95+X1JGshuBjGp6nxKUy1jMgE3zPqN7fQdg==} + hasBin: true + dev: false + /asynciterator.prototype@1.0.0: resolution: {integrity: sha512-wwHYEIS0Q80f5mosx3L/dfG5t5rjEa9Ft51GTaNt862EnpyGHpgz2RkZvLPp1oF5TnAiTohkEKVEu8pQPJI7Vg==} dependencies: @@ -2069,6 +2183,10 @@ packages: engines: {node: '>= 0.4'} dev: true + /bail@2.0.2: + resolution: {integrity: sha512-0xO6mYd7JB2YesxDKplafRpsiOzPt9V02ddPCLbY1xYGPOX24NTyN50qnUxgCPcSoYMhKpAuBTjQoRZCAkUDRw==} + dev: false + /balanced-match@1.0.2: resolution: {integrity: sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==} @@ -2213,6 +2331,10 @@ packages: /caniuse-lite@1.0.30001561: resolution: {integrity: sha512-NTt0DNoKe958Q0BE0j0c1V9jbUzhBxHIEJy7asmGrpE0yG63KTV7PLHPnK2E1O9RsQrQ081I3NLuXGS6zht3cw==} + /ccount@2.0.1: + resolution: {integrity: sha512-eyrF0jiFpY+3drT6383f1qhkbGsLSifNAjA61IUjZjmLCWjItY6LB9ft9YhoDgwfmclB2zhu51Lc7+95b8NRAg==} + dev: false + /chalk@2.4.2: resolution: {integrity: sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==} engines: {node: '>=4'} @@ -2230,6 +2352,22 @@ packages: supports-color: 7.2.0 dev: true + /character-entities-html4@2.1.0: + resolution: {integrity: sha512-1v7fgQRj6hnSwFpq1Eu0ynr/CDEw0rXo2B61qXrLNdHZmPKgb7fqS1a2JwF0rISo9q77jDI8VMEHoApn8qDoZA==} + dev: false + + /character-entities-legacy@3.0.0: + resolution: {integrity: sha512-RpPp0asT/6ufRm//AJVwpViZbGM/MkjQFxJccQRHmISF/22NBtsHqAWmL+/pmkPWoIUJdWyeVleTl1wydHATVQ==} + dev: false + + /character-entities@2.0.2: + resolution: {integrity: sha512-shx7oQ0Awen/BRIdkjkvz54PnEEI/EjwXDSIZp86/KKdbafHh1Df/RYGBhn4hbe2+uKC9FnT5UCEdyPz3ai9hQ==} + dev: false + + /character-reference-invalid@2.0.1: + resolution: {integrity: sha512-iBZ4F4wRbyORVsu0jPV7gXkOsGYjGHPmAyv+HiHG8gi5PtC9KI2j1+v8/tlibRvjoWX027ypmG/n0HtO5t7unw==} + dev: false + /chokidar@3.5.3: resolution: {integrity: sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw==} engines: {node: '>= 8.10.0'} @@ -2274,6 +2412,10 @@ packages: /color-name@1.1.4: resolution: {integrity: sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==} + /comma-separated-tokens@2.0.3: + resolution: {integrity: sha512-Fu4hJdvzeylCfQPp9SGWidpzrMs7tTrlu6Vb8XGaRGck8QSNZJJp538Wrb60Lax4fPwR64ViY468OIUTbRlGZg==} + dev: false + /commander@2.20.3: resolution: {integrity: sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==} @@ -2349,7 +2491,6 @@ packages: /csstype@3.1.2: resolution: {integrity: sha512-I7K1Uu0MBPzaFKg4nI5Q7Vs2t+3gWWW648spaF+Rg7pI9ds18Ugn+lvg4SHczUdKlHI5LWBXyqfS8+DufyBsgQ==} - dev: true /debug@2.6.9: resolution: {integrity: sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==} @@ -2382,7 +2523,12 @@ packages: optional: true dependencies: ms: 2.1.2 - dev: true + + /decode-named-character-reference@1.0.2: + resolution: {integrity: sha512-O8x12RzrUF8xyVcY0KJowWsmaJxQbmy0/EtnNtHRpsOcT7dFk5W598coHqBVpmWo1oQQfsCqfCmkZN5DJrZVdg==} + dependencies: + character-entities: 2.0.2 + dev: false /decompress-response@6.0.0: resolution: {integrity: sha512-aW35yZM6Bb/4oJlZncMH2LCoZtJXTRxES17vE3hoRiowU2kWHaJKFkSBDnDR+cm9J+9QhXmREyIfv0pji9ejCQ==} @@ -2421,6 +2567,11 @@ packages: resolution: {integrity: sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==} engines: {node: '>= 0.8'} + /dequal@2.0.3: + resolution: {integrity: sha512-0je+qPKHEMohvfRTCEo3CrPG6cAzAYgmzKyxRiYSSDkS6eGJdyVJm7WaYA5ECaAD9wLB2T4EEeymA5aFVcYXCA==} + engines: {node: '>=6'} + dev: false + /destroy@1.2.0: resolution: {integrity: sha512-2sJGJTaXIIaR1w4iJSNoN0hnMY7Gpc/n8D4qSCJw8QqFWXf7cuAgnEHxBpweaVcPevC2l3KpjYCx3NypQQgaJg==} engines: {node: '>= 0.8', npm: 1.2.8000 || >= 1.4.16} @@ -2429,6 +2580,11 @@ packages: resolution: {integrity: sha512-gxtyfqMg7GKyhQmb056K7M3xszy/myH8w+B4RT+QXBQsvAOdc3XymqDDPHx1BgPgsdAA5SIifona89YtRATDzw==} dev: true + /diff@5.1.0: + resolution: {integrity: sha512-D+mk+qE8VC/PAUrlAU34N+VfXev0ghe5ywmpqrawphmVZc1bEfn56uo9qpyGp1p4xpzOHkSW4ztBd6L7Xx4ACw==} + engines: {node: '>=0.3.1'} + dev: false + /dir-glob@3.0.1: resolution: {integrity: sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==} engines: {node: '>=8'} @@ -2870,6 +3026,45 @@ packages: resolution: {integrity: sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==} engines: {node: '>=4.0'} + /estree-util-attach-comments@2.1.1: + resolution: {integrity: sha512-+5Ba/xGGS6mnwFbXIuQiDPTbuTxuMCooq3arVv7gPZtYpjp+VXH/NkHAP35OOefPhNG/UGqU3vt/LTABwcHX0w==} + dependencies: + '@types/estree': 1.0.5 + dev: false + + /estree-util-build-jsx@2.2.2: + resolution: {integrity: sha512-m56vOXcOBuaF+Igpb9OPAy7f9w9OIkb5yhjsZuaPm7HoGi4oTOQi0h2+yZ+AtKklYFZ+rPC4n0wYCJCEU1ONqg==} + dependencies: + '@types/estree-jsx': 1.0.3 + estree-util-is-identifier-name: 2.1.0 + estree-walker: 3.0.3 + dev: false + + /estree-util-is-identifier-name@2.1.0: + resolution: {integrity: sha512-bEN9VHRyXAUOjkKVQVvArFym08BTWB0aJPppZZr0UNyAqWsLaVfAqP7hbaTJjzHifmB5ebnR8Wm7r7yGN/HonQ==} + dev: false + + /estree-util-to-js@1.2.0: + resolution: {integrity: sha512-IzU74r1PK5IMMGZXUVZbmiu4A1uhiPgW5hm1GjcOfr4ZzHaMPpLNJjR7HjXiIOzi25nZDrgFTobHTkV5Q6ITjA==} + dependencies: + '@types/estree-jsx': 1.0.3 + astring: 1.8.6 + source-map: 0.7.4 + dev: false + + /estree-util-visit@1.2.1: + resolution: {integrity: sha512-xbgqcrkIVbIG+lI/gzbvd9SGTJL4zqJKBFttUl5pP27KhAjtMKbX/mQXJ7qgyXpMgVy/zvpm0xoQQaGL8OloOw==} + dependencies: + '@types/estree-jsx': 1.0.3 + '@types/unist': 2.0.10 + dev: false + + /estree-walker@3.0.3: + resolution: {integrity: sha512-7RUKfXgSMMkzt6ZuXmqapOurLGPPfgj6l9uRZ7lRGolvk0y2yocc35LdcxKC5PQZdn2DMqioAQ2NoWcrTKmm6g==} + dependencies: + '@types/estree': 1.0.5 + dev: false + /esutils@2.0.3: resolution: {integrity: sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==} engines: {node: '>=0.10.0'} @@ -2971,6 +3166,10 @@ packages: sort-keys-length: 1.0.1 dev: true + /extend@3.0.2: + resolution: {integrity: sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==} + dev: false + /fast-deep-equal@3.1.3: resolution: {integrity: sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==} @@ -3343,6 +3542,32 @@ packages: dependencies: function-bind: 1.1.2 + /hast-util-to-estree@2.3.3: + resolution: {integrity: sha512-ihhPIUPxN0v0w6M5+IiAZZrn0LH2uZomeWwhn7uP7avZC6TE7lIiEh2yBMPr5+zi1aUCXq6VoYRgs2Bw9xmycQ==} + dependencies: + '@types/estree': 1.0.5 + '@types/estree-jsx': 1.0.3 + '@types/hast': 2.3.8 + '@types/unist': 2.0.10 + comma-separated-tokens: 2.0.3 + estree-util-attach-comments: 2.1.1 + estree-util-is-identifier-name: 2.1.0 + hast-util-whitespace: 2.0.1 + mdast-util-mdx-expression: 1.3.2 + mdast-util-mdxjs-esm: 1.3.1 + property-information: 6.4.0 + space-separated-tokens: 2.0.2 + style-to-object: 0.4.4 + unist-util-position: 4.0.4 + zwitch: 2.0.4 + transitivePeerDependencies: + - supports-color + dev: false + + /hast-util-whitespace@2.0.1: + resolution: {integrity: sha512-nAxA0v8+vXSBDt3AnRUNjyRIQ0rD+ntpbAp4LnPkumc5M9yUbSMa4XDU9Q6etY4f1Wp4bNgvc1yjiZtsTTrSng==} + dev: false + /http-cache-semantics@4.1.1: resolution: {integrity: sha512-er295DKPVsV82j5kw1Gjt+ADA/XYHsajl82cGNQG2eyoPkvgUhX+nDIyelzhIWbbsXP39EHcI6l5tYs2FYqYXQ==} dev: true @@ -3408,6 +3633,10 @@ packages: /inherits@2.0.4: resolution: {integrity: sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==} + /inline-style-parser@0.1.1: + resolution: {integrity: sha512-7NXolsK4CAS5+xvdj5OMMbI962hU/wvwoxk+LWR9Ek9bVtyuuYScDN6eS0rUm6TxApFpw7CX1o4uJzcd4AyD3Q==} + dev: false + /internal-slot@1.0.6: resolution: {integrity: sha512-Xj6dv+PsbtwyPpEflsejS+oIZxmMlV44zAhG479uYu89MsjcYOhCFnNyKrkJrihbsiasQyY0afoCl/9BLR65bg==} engines: {node: '>= 0.4'} @@ -3421,6 +3650,17 @@ packages: resolution: {integrity: sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g==} engines: {node: '>= 0.10'} + /is-alphabetical@2.0.1: + resolution: {integrity: sha512-FWyyY60MeTNyeSRpkM2Iry0G9hpr7/9kD40mD/cGQEuilcZYS4okz8SN2Q6rLCJ8gbCt6fN+rC+6tMGS99LaxQ==} + dev: false + + /is-alphanumerical@2.0.1: + resolution: {integrity: sha512-hmbYhX/9MUMF5uh7tOXyK/n0ZvWpad5caBA17GsC6vyuCqaWliRG5K1qS9inmUhEMaOBIW7/whAnSwveW/LtZw==} + dependencies: + is-alphabetical: 2.0.1 + is-decimal: 2.0.1 + dev: false + /is-array-buffer@3.0.2: resolution: {integrity: sha512-y+FyyR/w8vfIRq4eQcM1EYgSTnmHXPqaF+IgzgraytCFq5Xh8lllDVmAZolPJiZttZLeFSINPYMaEJ7/vWUa1w==} dependencies: @@ -3457,6 +3697,11 @@ packages: has-tostringtag: 1.0.0 dev: true + /is-buffer@2.0.5: + resolution: {integrity: sha512-i2R6zNFDwgEHJyQUtJEk0XFi1i0dPFn/oqjK3/vPCcDeJvW5NQ83V8QbicfF1SupOaB0h8ntgBC2YiE7dfyctQ==} + engines: {node: '>=4'} + dev: false + /is-callable@1.2.7: resolution: {integrity: sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA==} engines: {node: '>= 0.4'} @@ -3475,6 +3720,10 @@ packages: has-tostringtag: 1.0.0 dev: true + /is-decimal@2.0.1: + resolution: {integrity: sha512-AAB9hiomQs5DXWcRB1rqsxGUstbRroFOPPVAomNk/3XHR5JyEZChOyTWe2oayKnsSsr/kcGqF+z6yuH6HHpN0A==} + dev: false + /is-extglob@2.1.1: resolution: {integrity: sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==} engines: {node: '>=0.10.0'} @@ -3505,6 +3754,10 @@ packages: is-extglob: 2.1.1 dev: true + /is-hexadecimal@2.0.1: + resolution: {integrity: sha512-DgZQp241c8oO6cA1SbTEWiXeoxV42vlcJxgH+B3hi1AiqqKruZR3ZGF8In3fj4+/y/7rHvlOZLZtgJ/4ttYGZg==} + dev: false + /is-map@2.0.2: resolution: {integrity: sha512-cOZFQQozTha1f4MxLFzlgKYPTyj26picdZTx82hbc/Xf4K/tZOOXSCkMvU4pKioRXGDLJRn0GM7Upe7kR721yg==} dev: true @@ -3536,6 +3789,17 @@ packages: engines: {node: '>=0.10.0'} dev: true + /is-plain-obj@4.1.0: + resolution: {integrity: sha512-+Pgi+vMuUNkJyExiMBt5IlFoMyKnr5zhJ4Uspz58WOhBF5QoIZkFyNHIbBAtHwzVAgk5RtndVNsDRN61/mmDqg==} + engines: {node: '>=12'} + dev: false + + /is-reference@3.0.2: + resolution: {integrity: sha512-v3rht/LgVcsdZa3O2Nqs+NMowLOxeOm7Ay9+/ARQ2F+qEoANRcqrjAZKGN0v8ymUetZGgkp26LTnGT7H0Qo9Pg==} + dependencies: + '@types/estree': 1.0.5 + dev: false + /is-regex@1.1.4: resolution: {integrity: sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg==} engines: {node: '>= 0.4'} @@ -3649,7 +3913,6 @@ packages: hasBin: true dependencies: argparse: 2.0.1 - dev: true /jsesc@2.5.2: resolution: {integrity: sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==} @@ -3712,6 +3975,11 @@ packages: resolution: {integrity: sha512-eTIzlVOSUR+JxdDFepEYcBMtZ9Qqdef+rnzWdRZuMbOywu5tO2w2N7rqjoANZ5k9vywhL6Br1VRjUIgTQx4E8w==} engines: {node: '>=6'} + /kleur@4.1.5: + resolution: {integrity: sha512-o+NO+8WrRiQEE4/7nwRJhN1HWpVmJm511pBHUxPLtp0BUISzlBplORYSmTclCnJvQq2tKu/sgl3xVpkc7ZWuQQ==} + engines: {node: '>=6'} + dev: false + /kolorist@1.8.0: resolution: {integrity: sha512-Y+60/zizpJ3HRH8DCss+q95yr6145JXZo46OTpFvDZWLfRCE4qChOyk1b26nMaNpfHHgxagk9dXT5OP0Tfe+dQ==} dev: false @@ -3748,6 +4016,10 @@ packages: resolution: {integrity: sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==} dev: true + /longest-streak@3.1.0: + resolution: {integrity: sha512-9Ri+o0JYgehTaVBBDoMqIl8GXtbWg711O3srftcHhZ0dqnETqLaoIK0x17fUw9rFSlK/0NlsKe0Ahhyl5pXE2g==} + dev: false + /loose-envify@1.4.0: resolution: {integrity: sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==} hasBin: true @@ -3784,6 +4056,132 @@ packages: yallist: 4.0.0 dev: true + /markdown-extensions@1.1.1: + resolution: {integrity: sha512-WWC0ZuMzCyDHYCasEGs4IPvLyTGftYwh6wIEOULOF0HXcqZlhwRzrK0w2VUlxWA98xnvb/jszw4ZSkJ6ADpM6Q==} + engines: {node: '>=0.10.0'} + dev: false + + /mdast-util-definitions@5.1.2: + resolution: {integrity: sha512-8SVPMuHqlPME/z3gqVwWY4zVXn8lqKv/pAhC57FuJ40ImXyBpmO5ukh98zB2v7Blql2FiHjHv9LVztSIqjY+MA==} + dependencies: + '@types/mdast': 3.0.15 + '@types/unist': 2.0.10 + unist-util-visit: 4.1.2 + dev: false + + /mdast-util-from-markdown@1.3.1: + resolution: {integrity: sha512-4xTO/M8c82qBcnQc1tgpNtubGUW/Y1tBQ1B0i5CtSoelOLKFYlElIr3bvgREYYO5iRqbMY1YuqZng0GVOI8Qww==} + dependencies: + '@types/mdast': 3.0.15 + '@types/unist': 2.0.10 + decode-named-character-reference: 1.0.2 + mdast-util-to-string: 3.2.0 + micromark: 3.2.0 + micromark-util-decode-numeric-character-reference: 1.1.0 + micromark-util-decode-string: 1.1.0 + micromark-util-normalize-identifier: 1.1.0 + micromark-util-symbol: 1.1.0 + micromark-util-types: 1.1.0 + unist-util-stringify-position: 3.0.3 + uvu: 0.5.6 + transitivePeerDependencies: + - supports-color + dev: false + + /mdast-util-mdx-expression@1.3.2: + resolution: {integrity: sha512-xIPmR5ReJDu/DHH1OoIT1HkuybIfRGYRywC+gJtI7qHjCJp/M9jrmBEJW22O8lskDWm562BX2W8TiAwRTb0rKA==} + dependencies: + '@types/estree-jsx': 1.0.3 + '@types/hast': 2.3.8 + '@types/mdast': 3.0.15 + mdast-util-from-markdown: 1.3.1 + mdast-util-to-markdown: 1.5.0 + transitivePeerDependencies: + - supports-color + dev: false + + /mdast-util-mdx-jsx@2.1.4: + resolution: {integrity: sha512-DtMn9CmVhVzZx3f+optVDF8yFgQVt7FghCRNdlIaS3X5Bnym3hZwPbg/XW86vdpKjlc1PVj26SpnLGeJBXD3JA==} + dependencies: + '@types/estree-jsx': 1.0.3 + '@types/hast': 2.3.8 + '@types/mdast': 3.0.15 + '@types/unist': 2.0.10 + ccount: 2.0.1 + mdast-util-from-markdown: 1.3.1 + mdast-util-to-markdown: 1.5.0 + parse-entities: 4.0.1 + stringify-entities: 4.0.3 + unist-util-remove-position: 4.0.2 + unist-util-stringify-position: 3.0.3 + vfile-message: 3.1.4 + transitivePeerDependencies: + - supports-color + dev: false + + /mdast-util-mdx@2.0.1: + resolution: {integrity: sha512-38w5y+r8nyKlGvNjSEqWrhG0w5PmnRA+wnBvm+ulYCct7nsGYhFVb0lljS9bQav4psDAS1eGkP2LMVcZBi/aqw==} + dependencies: + mdast-util-from-markdown: 1.3.1 + mdast-util-mdx-expression: 1.3.2 + mdast-util-mdx-jsx: 2.1.4 + mdast-util-mdxjs-esm: 1.3.1 + mdast-util-to-markdown: 1.5.0 + transitivePeerDependencies: + - supports-color + dev: false + + /mdast-util-mdxjs-esm@1.3.1: + resolution: {integrity: sha512-SXqglS0HrEvSdUEfoXFtcg7DRl7S2cwOXc7jkuusG472Mmjag34DUDeOJUZtl+BVnyeO1frIgVpHlNRWc2gk/w==} + dependencies: + '@types/estree-jsx': 1.0.3 + '@types/hast': 2.3.8 + '@types/mdast': 3.0.15 + mdast-util-from-markdown: 1.3.1 + mdast-util-to-markdown: 1.5.0 + transitivePeerDependencies: + - supports-color + dev: false + + /mdast-util-phrasing@3.0.1: + resolution: {integrity: sha512-WmI1gTXUBJo4/ZmSk79Wcb2HcjPJBzM1nlI/OUWA8yk2X9ik3ffNbBGsU+09BFmXaL1IBb9fiuvq6/KMiNycSg==} + dependencies: + '@types/mdast': 3.0.15 + unist-util-is: 5.2.1 + dev: false + + /mdast-util-to-hast@12.3.0: + resolution: {integrity: sha512-pits93r8PhnIoU4Vy9bjW39M2jJ6/tdHyja9rrot9uujkN7UTU9SDnE6WNJz/IGyQk3XHX6yNNtrBH6cQzm8Hw==} + dependencies: + '@types/hast': 2.3.8 + '@types/mdast': 3.0.15 + mdast-util-definitions: 5.1.2 + micromark-util-sanitize-uri: 1.2.0 + trim-lines: 3.0.1 + unist-util-generated: 2.0.1 + unist-util-position: 4.0.4 + unist-util-visit: 4.1.2 + dev: false + + /mdast-util-to-markdown@1.5.0: + resolution: {integrity: sha512-bbv7TPv/WC49thZPg3jXuqzuvI45IL2EVAr/KxF0BSdHsU0ceFHOmwQn6evxAh1GaoK/6GQ1wp4R4oW2+LFL/A==} + dependencies: + '@types/mdast': 3.0.15 + '@types/unist': 2.0.10 + longest-streak: 3.1.0 + mdast-util-phrasing: 3.0.1 + mdast-util-to-string: 3.2.0 + micromark-util-decode-string: 1.1.0 + unist-util-visit: 4.1.2 + zwitch: 2.0.4 + dev: false + + /mdast-util-to-string@3.2.0: + resolution: {integrity: sha512-V4Zn/ncyN1QNSqSBxTrMOLpjr+IKdHl2v3KVLoWmDPscP4r9GcCi71gjgvUV1SFSKh92AjAG4peFuBl2/YgCJg==} + dependencies: + '@types/mdast': 3.0.15 + dev: false + /media-typer@0.3.0: resolution: {integrity: sha512-dq+qelQ9akHpcOl/gUVRTxVIOkAJ1wR3QAvb4RsVjS8oVoFjDGTc679wJYmUmknUF5HwMLOgb5O+a3KxfWapPQ==} engines: {node: '>= 0.6'} @@ -3803,6 +4201,268 @@ packages: resolution: {integrity: sha512-iclAHeNqNm68zFtnZ0e+1L2yUIdvzNoauKU4WBA3VvH/vPFieF7qfRlwUZU+DA9P9bPXIS90ulxoUoCH23sV2w==} engines: {node: '>= 0.6'} + /micromark-core-commonmark@1.1.0: + resolution: {integrity: sha512-BgHO1aRbolh2hcrzL2d1La37V0Aoz73ymF8rAcKnohLy93titmv62E0gP8Hrx9PKcKrqCZ1BbLGbP3bEhoXYlw==} + dependencies: + decode-named-character-reference: 1.0.2 + micromark-factory-destination: 1.1.0 + micromark-factory-label: 1.1.0 + micromark-factory-space: 1.1.0 + micromark-factory-title: 1.1.0 + micromark-factory-whitespace: 1.1.0 + micromark-util-character: 1.2.0 + micromark-util-chunked: 1.1.0 + micromark-util-classify-character: 1.1.0 + micromark-util-html-tag-name: 1.2.0 + micromark-util-normalize-identifier: 1.1.0 + micromark-util-resolve-all: 1.1.0 + micromark-util-subtokenize: 1.1.0 + micromark-util-symbol: 1.1.0 + micromark-util-types: 1.1.0 + uvu: 0.5.6 + dev: false + + /micromark-extension-mdx-expression@1.0.8: + resolution: {integrity: sha512-zZpeQtc5wfWKdzDsHRBY003H2Smg+PUi2REhqgIhdzAa5xonhP03FcXxqFSerFiNUr5AWmHpaNPQTBVOS4lrXw==} + dependencies: + '@types/estree': 1.0.5 + micromark-factory-mdx-expression: 1.0.9 + micromark-factory-space: 1.1.0 + micromark-util-character: 1.2.0 + micromark-util-events-to-acorn: 1.2.3 + micromark-util-symbol: 1.1.0 + micromark-util-types: 1.1.0 + uvu: 0.5.6 + dev: false + + /micromark-extension-mdx-jsx@1.0.5: + resolution: {integrity: sha512-gPH+9ZdmDflbu19Xkb8+gheqEDqkSpdCEubQyxuz/Hn8DOXiXvrXeikOoBA71+e8Pfi0/UYmU3wW3H58kr7akA==} + dependencies: + '@types/acorn': 4.0.6 + '@types/estree': 1.0.5 + estree-util-is-identifier-name: 2.1.0 + micromark-factory-mdx-expression: 1.0.9 + micromark-factory-space: 1.1.0 + micromark-util-character: 1.2.0 + micromark-util-symbol: 1.1.0 + micromark-util-types: 1.1.0 + uvu: 0.5.6 + vfile-message: 3.1.4 + dev: false + + /micromark-extension-mdx-md@1.0.1: + resolution: {integrity: sha512-7MSuj2S7xjOQXAjjkbjBsHkMtb+mDGVW6uI2dBL9snOBCbZmoNgDAeZ0nSn9j3T42UE/g2xVNMn18PJxZvkBEA==} + dependencies: + micromark-util-types: 1.1.0 + dev: false + + /micromark-extension-mdxjs-esm@1.0.5: + resolution: {integrity: sha512-xNRBw4aoURcyz/S69B19WnZAkWJMxHMT5hE36GtDAyhoyn/8TuAeqjFJQlwk+MKQsUD7b3l7kFX+vlfVWgcX1w==} + dependencies: + '@types/estree': 1.0.5 + micromark-core-commonmark: 1.1.0 + micromark-util-character: 1.2.0 + micromark-util-events-to-acorn: 1.2.3 + micromark-util-symbol: 1.1.0 + micromark-util-types: 1.1.0 + unist-util-position-from-estree: 1.1.2 + uvu: 0.5.6 + vfile-message: 3.1.4 + dev: false + + /micromark-extension-mdxjs@1.0.1: + resolution: {integrity: sha512-7YA7hF6i5eKOfFUzZ+0z6avRG52GpWR8DL+kN47y3f2KhxbBZMhmxe7auOeaTBrW2DenbbZTf1ea9tA2hDpC2Q==} + dependencies: + acorn: 8.11.2 + acorn-jsx: 5.3.2(acorn@8.11.2) + micromark-extension-mdx-expression: 1.0.8 + micromark-extension-mdx-jsx: 1.0.5 + micromark-extension-mdx-md: 1.0.1 + micromark-extension-mdxjs-esm: 1.0.5 + micromark-util-combine-extensions: 1.1.0 + micromark-util-types: 1.1.0 + dev: false + + /micromark-factory-destination@1.1.0: + resolution: {integrity: sha512-XaNDROBgx9SgSChd69pjiGKbV+nfHGDPVYFs5dOoDd7ZnMAE+Cuu91BCpsY8RT2NP9vo/B8pds2VQNCLiu0zhg==} + dependencies: + micromark-util-character: 1.2.0 + micromark-util-symbol: 1.1.0 + micromark-util-types: 1.1.0 + dev: false + + /micromark-factory-label@1.1.0: + resolution: {integrity: sha512-OLtyez4vZo/1NjxGhcpDSbHQ+m0IIGnT8BoPamh+7jVlzLJBH98zzuCoUeMxvM6WsNeh8wx8cKvqLiPHEACn0w==} + dependencies: + micromark-util-character: 1.2.0 + micromark-util-symbol: 1.1.0 + micromark-util-types: 1.1.0 + uvu: 0.5.6 + dev: false + + /micromark-factory-mdx-expression@1.0.9: + resolution: {integrity: sha512-jGIWzSmNfdnkJq05c7b0+Wv0Kfz3NJ3N4cBjnbO4zjXIlxJr+f8lk+5ZmwFvqdAbUy2q6B5rCY//g0QAAaXDWA==} + dependencies: + '@types/estree': 1.0.5 + micromark-util-character: 1.2.0 + micromark-util-events-to-acorn: 1.2.3 + micromark-util-symbol: 1.1.0 + micromark-util-types: 1.1.0 + unist-util-position-from-estree: 1.1.2 + uvu: 0.5.6 + vfile-message: 3.1.4 + dev: false + + /micromark-factory-space@1.1.0: + resolution: {integrity: sha512-cRzEj7c0OL4Mw2v6nwzttyOZe8XY/Z8G0rzmWQZTBi/jjwyw/U4uqKtUORXQrR5bAZZnbTI/feRV/R7hc4jQYQ==} + dependencies: + micromark-util-character: 1.2.0 + micromark-util-types: 1.1.0 + dev: false + + /micromark-factory-title@1.1.0: + resolution: {integrity: sha512-J7n9R3vMmgjDOCY8NPw55jiyaQnH5kBdV2/UXCtZIpnHH3P6nHUKaH7XXEYuWwx/xUJcawa8plLBEjMPU24HzQ==} + dependencies: + micromark-factory-space: 1.1.0 + micromark-util-character: 1.2.0 + micromark-util-symbol: 1.1.0 + micromark-util-types: 1.1.0 + dev: false + + /micromark-factory-whitespace@1.1.0: + resolution: {integrity: sha512-v2WlmiymVSp5oMg+1Q0N1Lxmt6pMhIHD457whWM7/GUlEks1hI9xj5w3zbc4uuMKXGisksZk8DzP2UyGbGqNsQ==} + dependencies: + micromark-factory-space: 1.1.0 + micromark-util-character: 1.2.0 + micromark-util-symbol: 1.1.0 + micromark-util-types: 1.1.0 + dev: false + + /micromark-util-character@1.2.0: + resolution: {integrity: sha512-lXraTwcX3yH/vMDaFWCQJP1uIszLVebzUa3ZHdrgxr7KEU/9mL4mVgCpGbyhvNLNlauROiNUq7WN5u7ndbY6xg==} + dependencies: + micromark-util-symbol: 1.1.0 + micromark-util-types: 1.1.0 + dev: false + + /micromark-util-chunked@1.1.0: + resolution: {integrity: sha512-Ye01HXpkZPNcV6FiyoW2fGZDUw4Yc7vT0E9Sad83+bEDiCJ1uXu0S3mr8WLpsz3HaG3x2q0HM6CTuPdcZcluFQ==} + dependencies: + micromark-util-symbol: 1.1.0 + dev: false + + /micromark-util-classify-character@1.1.0: + resolution: {integrity: sha512-SL0wLxtKSnklKSUplok1WQFoGhUdWYKggKUiqhX+Swala+BtptGCu5iPRc+xvzJ4PXE/hwM3FNXsfEVgoZsWbw==} + dependencies: + micromark-util-character: 1.2.0 + micromark-util-symbol: 1.1.0 + micromark-util-types: 1.1.0 + dev: false + + /micromark-util-combine-extensions@1.1.0: + resolution: {integrity: sha512-Q20sp4mfNf9yEqDL50WwuWZHUrCO4fEyeDCnMGmG5Pr0Cz15Uo7KBs6jq+dq0EgX4DPwwrh9m0X+zPV1ypFvUA==} + dependencies: + micromark-util-chunked: 1.1.0 + micromark-util-types: 1.1.0 + dev: false + + /micromark-util-decode-numeric-character-reference@1.1.0: + resolution: {integrity: sha512-m9V0ExGv0jB1OT21mrWcuf4QhP46pH1KkfWy9ZEezqHKAxkj4mPCy3nIH1rkbdMlChLHX531eOrymlwyZIf2iw==} + dependencies: + micromark-util-symbol: 1.1.0 + dev: false + + /micromark-util-decode-string@1.1.0: + resolution: {integrity: sha512-YphLGCK8gM1tG1bd54azwyrQRjCFcmgj2S2GoJDNnh4vYtnL38JS8M4gpxzOPNyHdNEpheyWXCTnnTDY3N+NVQ==} + dependencies: + decode-named-character-reference: 1.0.2 + micromark-util-character: 1.2.0 + micromark-util-decode-numeric-character-reference: 1.1.0 + micromark-util-symbol: 1.1.0 + dev: false + + /micromark-util-encode@1.1.0: + resolution: {integrity: sha512-EuEzTWSTAj9PA5GOAs992GzNh2dGQO52UvAbtSOMvXTxv3Criqb6IOzJUBCmEqrrXSblJIJBbFFv6zPxpreiJw==} + dev: false + + /micromark-util-events-to-acorn@1.2.3: + resolution: {integrity: sha512-ij4X7Wuc4fED6UoLWkmo0xJQhsktfNh1J0m8g4PbIMPlx+ek/4YdW5mvbye8z/aZvAPUoxgXHrwVlXAPKMRp1w==} + dependencies: + '@types/acorn': 4.0.6 + '@types/estree': 1.0.5 + '@types/unist': 2.0.10 + estree-util-visit: 1.2.1 + micromark-util-symbol: 1.1.0 + micromark-util-types: 1.1.0 + uvu: 0.5.6 + vfile-message: 3.1.4 + dev: false + + /micromark-util-html-tag-name@1.2.0: + resolution: {integrity: sha512-VTQzcuQgFUD7yYztuQFKXT49KghjtETQ+Wv/zUjGSGBioZnkA4P1XXZPT1FHeJA6RwRXSF47yvJ1tsJdoxwO+Q==} + dev: false + + /micromark-util-normalize-identifier@1.1.0: + resolution: {integrity: sha512-N+w5vhqrBihhjdpM8+5Xsxy71QWqGn7HYNUvch71iV2PM7+E3uWGox1Qp90loa1ephtCxG2ftRV/Conitc6P2Q==} + dependencies: + micromark-util-symbol: 1.1.0 + dev: false + + /micromark-util-resolve-all@1.1.0: + resolution: {integrity: sha512-b/G6BTMSg+bX+xVCshPTPyAu2tmA0E4X98NSR7eIbeC6ycCqCeE7wjfDIgzEbkzdEVJXRtOG4FbEm/uGbCRouA==} + dependencies: + micromark-util-types: 1.1.0 + dev: false + + /micromark-util-sanitize-uri@1.2.0: + resolution: {integrity: sha512-QO4GXv0XZfWey4pYFndLUKEAktKkG5kZTdUNaTAkzbuJxn2tNBOr+QtxR2XpWaMhbImT2dPzyLrPXLlPhph34A==} + dependencies: + micromark-util-character: 1.2.0 + micromark-util-encode: 1.1.0 + micromark-util-symbol: 1.1.0 + dev: false + + /micromark-util-subtokenize@1.1.0: + resolution: {integrity: sha512-kUQHyzRoxvZO2PuLzMt2P/dwVsTiivCK8icYTeR+3WgbuPqfHgPPy7nFKbeqRivBvn/3N3GBiNC+JRTMSxEC7A==} + dependencies: + micromark-util-chunked: 1.1.0 + micromark-util-symbol: 1.1.0 + micromark-util-types: 1.1.0 + uvu: 0.5.6 + dev: false + + /micromark-util-symbol@1.1.0: + resolution: {integrity: sha512-uEjpEYY6KMs1g7QfJ2eX1SQEV+ZT4rUD3UcF6l57acZvLNK7PBZL+ty82Z1qhK1/yXIY4bdx04FKMgR0g4IAag==} + dev: false + + /micromark-util-types@1.1.0: + resolution: {integrity: sha512-ukRBgie8TIAcacscVHSiddHjO4k/q3pnedmzMQ4iwDcK0FtFCohKOlFbaOL/mPgfnPsL3C1ZyxJa4sbWrBl3jg==} + dev: false + + /micromark@3.2.0: + resolution: {integrity: sha512-uD66tJj54JLYq0De10AhWycZWGQNUvDI55xPgk2sQM5kn1JYlhbCMTtEeT27+vAhW2FBQxLlOmS3pmA7/2z4aA==} + dependencies: + '@types/debug': 4.1.12 + debug: 4.3.4 + decode-named-character-reference: 1.0.2 + micromark-core-commonmark: 1.1.0 + micromark-factory-space: 1.1.0 + micromark-util-character: 1.2.0 + micromark-util-chunked: 1.1.0 + micromark-util-combine-extensions: 1.1.0 + micromark-util-decode-numeric-character-reference: 1.1.0 + micromark-util-encode: 1.1.0 + micromark-util-normalize-identifier: 1.1.0 + micromark-util-resolve-all: 1.1.0 + micromark-util-sanitize-uri: 1.2.0 + micromark-util-subtokenize: 1.1.0 + micromark-util-symbol: 1.1.0 + micromark-util-types: 1.1.0 + uvu: 0.5.6 + transitivePeerDependencies: + - supports-color + dev: false + /micromatch@4.0.5: resolution: {integrity: sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==} engines: {node: '>=8.6'} @@ -3863,12 +4523,16 @@ packages: engines: {node: '>=16 || 14 >=14.17'} dev: false + /mri@1.2.0: + resolution: {integrity: sha512-tzzskb3bG8LvYGFF/mDTpq3jpI6Q9wc3LEmBaghu+DdCssd1FakN7Bc0hVNmEyGq1bq3RgfkCb3cmQLpNPOroA==} + engines: {node: '>=4'} + dev: false + /ms@2.0.0: resolution: {integrity: sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==} /ms@2.1.2: resolution: {integrity: sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==} - dev: true /ms@2.1.3: resolution: {integrity: sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==} @@ -3898,6 +4562,23 @@ packages: /neo-async@2.6.2: resolution: {integrity: sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==} + /next-mdx-remote@4.4.1(react-dom@18.3.0-canary-0e352ea01-20231109)(react@18.3.0-canary-0e352ea01-20231109): + resolution: {integrity: sha512-1BvyXaIou6xy3XoNF4yaMZUCb6vD2GTAa5ciOa6WoO+gAUTYsb1K4rI/HSC2ogAWLrb/7VSV52skz07vOzmqIQ==} + engines: {node: '>=14', npm: '>=7'} + peerDependencies: + react: '>=16.x <=18.x' + react-dom: '>=16.x <=18.x' + dependencies: + '@mdx-js/mdx': 2.3.0 + '@mdx-js/react': 2.3.0(react@18.3.0-canary-0e352ea01-20231109) + react: 18.3.0-canary-0e352ea01-20231109 + react-dom: 18.3.0-canary-0e352ea01-20231109(react@18.3.0-canary-0e352ea01-20231109) + vfile: 5.3.7 + vfile-matter: 3.0.1 + transitivePeerDependencies: + - supports-color + dev: false + /node-releases@2.0.13: resolution: {integrity: sha512-uYr7J37ae/ORWdZeQ1xxMJe3NtdmqMC/JZK+geofDrkLUApKRHPd18/TxtBOJ4A0/+uUIliorNrfYV6s1b02eQ==} @@ -4070,6 +4751,19 @@ packages: callsites: 3.1.0 dev: true + /parse-entities@4.0.1: + resolution: {integrity: sha512-SWzvYcSJh4d/SGLIOQfZ/CoNv6BTlI6YEQ7Nj82oDVnRpwe/Z/F1EMx42x3JAOwGBlCjeCH0BRJQbQ/opHL17w==} + dependencies: + '@types/unist': 2.0.10 + character-entities: 2.0.2 + character-entities-legacy: 3.0.0 + character-reference-invalid: 2.0.1 + decode-named-character-reference: 1.0.2 + is-alphanumerical: 2.0.1 + is-decimal: 2.0.1 + is-hexadecimal: 2.0.1 + dev: false + /parseurl@1.3.3: resolution: {integrity: sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==} engines: {node: '>= 0.8'} @@ -4118,6 +4812,14 @@ packages: engines: {node: '>=14.16'} dev: true + /periscopic@3.1.0: + resolution: {integrity: sha512-vKiQ8RRtkl9P+r/+oefh25C3fhybptkHKCZSPlcXiJux2tJF55GnEj3BVn4A5gKfq9NWWXXrxkHBwVPUfH0opw==} + dependencies: + '@types/estree': 1.0.5 + estree-walker: 3.0.3 + is-reference: 3.0.2 + dev: false + /picocolors@1.0.0: resolution: {integrity: sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==} @@ -4304,6 +5006,10 @@ packages: react-is: 16.13.1 dev: true + /property-information@6.4.0: + resolution: {integrity: sha512-9t5qARVofg2xQqKtytzt+lZ4d1Qvj8t5B8fEwXK6qOfgRLgH/b13QlgEyDh033NOS31nXeFbYv7CLUDG1CeifQ==} + dev: false + /proxy-addr@2.0.7: resolution: {integrity: sha512-llQsMLSUDUPT44jdrU/O37qlnifitDP+ZwrmmZcoSKyLKvtZxpyV0n2/bD/N4tBAAZ/gJEdZU7KMraoK1+XYAg==} engines: {node: '>= 0.10'} @@ -4390,7 +5096,7 @@ packages: neo-async: 2.6.2 react: 18.3.0-canary-0e352ea01-20231109 react-dom: 18.3.0-canary-0e352ea01-20231109(react@18.3.0-canary-0e352ea01-20231109) - webpack: 5.89.0(@swc/core@1.3.96) + webpack: 5.89.0 /react-wrap-balancer@1.1.0(react@18.3.0-canary-0e352ea01-20231109): resolution: {integrity: sha512-EhF3jOZm5Fjx+Cx41e423qOv2c2aOvXAtym2OHqrGeMUnwERIyNsRBgnfT3plB170JmuYvts8K2KSPEIerKr5A==} @@ -4456,6 +5162,34 @@ packages: set-function-name: 2.0.1 dev: true + /remark-mdx@2.3.0: + resolution: {integrity: sha512-g53hMkpM0I98MU266IzDFMrTD980gNF3BJnkyFcmN+dD873mQeD5rdMO3Y2X+x8umQfbSE0PcoEDl7ledSA+2g==} + dependencies: + mdast-util-mdx: 2.0.1 + micromark-extension-mdxjs: 1.0.1 + transitivePeerDependencies: + - supports-color + dev: false + + /remark-parse@10.0.2: + resolution: {integrity: sha512-3ydxgHa/ZQzG8LvC7jTXccARYDcRld3VfcgIIFs7bI6vbRSxJJmzgLEIIoYKyrfhaY+ujuWaf/PJiMZXoiCXgw==} + dependencies: + '@types/mdast': 3.0.15 + mdast-util-from-markdown: 1.3.1 + unified: 10.1.2 + transitivePeerDependencies: + - supports-color + dev: false + + /remark-rehype@10.1.0: + resolution: {integrity: sha512-EFmR5zppdBp0WQeDVZ/b66CWJipB2q2VLNFMabzDSGR66Z2fQii83G5gTBbgGEnEEA0QRussvrFHxk1HWGJskw==} + dependencies: + '@types/hast': 2.3.8 + '@types/mdast': 3.0.15 + mdast-util-to-hast: 12.3.0 + unified: 10.1.2 + dev: false + /resolve-alpn@1.2.1: resolution: {integrity: sha512-0a1F4l73/ZFZOakJnQ3FvkJ2+gSTQWz/r2KE5OdDY0TxPm5h4GkqkWWfM47T7HsbnOtcJVEF4epCVy6u7Q3K+g==} dev: true @@ -4539,6 +5273,13 @@ packages: queue-microtask: 1.2.3 dev: true + /sade@1.8.1: + resolution: {integrity: sha512-xal3CZX1Xlo/k4ApwCFrHVACi9fBqJ7V+mwhBsuf/1IOKbBy098Fex+Wa/5QMubw09pSZ/u8EY8PWgevJsXp1A==} + engines: {node: '>=6'} + dependencies: + mri: 1.2.0 + dev: false + /safe-array-concat@1.0.1: resolution: {integrity: sha512-6XbUAseYE2KtOuGueyeobCySj9L4+66Tn6KQMOPQJrAJEowYKW/YR/MGJZl7FdydUdaFu4LYyDZjxf4/Nmo23Q==} engines: {node: '>=0.4'} @@ -4741,7 +5482,10 @@ packages: /source-map@0.7.4: resolution: {integrity: sha512-l3BikUxvPOcn5E74dZiq5BGsTb5yEwhaTSzccU6t4sDOH8NWJCstKO5QT2CvtFoK6F0saL7p9xHAqHOlCPJygA==} engines: {node: '>= 8'} - dev: true + + /space-separated-tokens@2.0.2: + resolution: {integrity: sha512-PEGlAwrG8yXGXRjW32fGbg66JAlOAwbObuqVoJpv/mRgoWDQfgH1wDPvtzWyUSNAXBGSk8h755YDbbcEy3SH2Q==} + dev: false /statuses@2.0.1: resolution: {integrity: sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==} @@ -4815,6 +5559,13 @@ packages: safe-buffer: 5.2.1 dev: true + /stringify-entities@4.0.3: + resolution: {integrity: sha512-BP9nNHMhhfcMbiuQKCqMjhDP5yBCAxsPu4pHFFzJ6Alo9dZgY4VLDPutXqIjpRiMoKdp7Av85Gr73Q5uH9k7+g==} + dependencies: + character-entities-html4: 2.1.0 + character-entities-legacy: 3.0.0 + dev: false + /strip-ansi@6.0.1: resolution: {integrity: sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==} engines: {node: '>=8'} @@ -4861,6 +5612,12 @@ packages: peek-readable: 5.0.0 dev: true + /style-to-object@0.4.4: + resolution: {integrity: sha512-HYNoHZa2GorYNyqiCaBgsxvcJIn7OHq6inEga+E6Ke3m5JkoqpQbnFssk4jwe+K7AhGa2fcha4wSOf1Kn01dMg==} + dependencies: + inline-style-parser: 0.1.1 + dev: false + /sucrase@3.34.0: resolution: {integrity: sha512-70/LQEZ07TEcxiU2dz51FKaE6hCTWC6vr7FOk3Gr0U60C3shtAN+H+BFr9XlYe5xqf3RA8nrc+VIwzCfnxuXJw==} engines: {node: '>=8'} @@ -4935,7 +5692,7 @@ packages: resolution: {integrity: sha512-GNzQvQTOIP6RyTfE2Qxb8ZVlNmw0n88vp1szwWRimP02mnTsx3Wtn5qRdqY9w2XduFNUgvOwhNnQsjwCp+kqaQ==} engines: {node: '>=6'} - /terser-webpack-plugin@5.3.9(@swc/core@1.3.96)(webpack@5.89.0): + /terser-webpack-plugin@5.3.9(webpack@5.89.0): resolution: {integrity: sha512-ZuXsqE07EcggTWQjXUj+Aot/OMcD0bMKGgF63f7UxYcu5/AJF53aIpK1YoP5xR9l6s/Hy2b+t1AM0bLNPRuhwA==} engines: {node: '>= 10.13.0'} peerDependencies: @@ -4952,12 +5709,11 @@ packages: optional: true dependencies: '@jridgewell/trace-mapping': 0.3.20 - '@swc/core': 1.3.96 jest-worker: 27.5.1 schema-utils: 3.3.0 serialize-javascript: 6.0.1 terser: 5.24.0 - webpack: 5.89.0(@swc/core@1.3.96) + webpack: 5.89.0 /terser@5.24.0: resolution: {integrity: sha512-ZpGR4Hy3+wBEzVEnHvstMvqpD/nABNelQn/z2r0fjVWGQsN3bpOLzQlqDxmb4CDZnXq5lpjnQ+mHQLAOpfM5iw==} @@ -5010,6 +5766,10 @@ packages: ieee754: 1.2.1 dev: true + /trim-lines@3.0.1: + resolution: {integrity: sha512-kRj8B+YHZCc9kQYdWfJB2/oUl9rA99qbowYYBtr4ui4mZyAQ2JpvVBd/6U2YloATfqBhBTSMhTpgBHtU0Mf3Rg==} + dev: false + /trim-repeated@2.0.0: resolution: {integrity: sha512-QUHBFTJGdOwmp0tbOG505xAgOp/YliZP/6UgafFXYZ26WT1bvQmSMJUvkeVSASuJJHbqsFbynTvkd5W8RBTipg==} engines: {node: '>=12'} @@ -5017,6 +5777,10 @@ packages: escape-string-regexp: 5.0.0 dev: true + /trough@2.1.0: + resolution: {integrity: sha512-AqTiAOLcj85xS7vQ8QkAV41hPDIJ71XJB4RCUrzo/1GM2CQwhkJGaf9Hgr7BOugMRpgGUrqRg/DrBDl4H40+8g==} + dev: false + /ts-api-utils@1.0.3(typescript@5.2.2): resolution: {integrity: sha512-wNMeqtMz5NtwpT/UZGY5alT+VoKdSsOOP/kqHFcUW1P/VRhH2wJ48+DN2WwUliNbQ976ETwDL0Ifd2VVvgonvg==} engines: {node: '>=16.13.0'} @@ -5114,6 +5878,68 @@ packages: /undici-types@5.26.5: resolution: {integrity: sha512-JlCMO+ehdEIKqlFxk6IfVoAUVmgz7cU7zD/h9XZ0qzeosSHmUJVOzSQvvYSYWXkFXC+IfLKSIffhv0sVZup6pA==} + /unified@10.1.2: + resolution: {integrity: sha512-pUSWAi/RAnVy1Pif2kAoeWNBa3JVrx0MId2LASj8G+7AiHWoKZNTomq6LG326T68U7/e263X6fTdcXIy7XnF7Q==} + dependencies: + '@types/unist': 2.0.10 + bail: 2.0.2 + extend: 3.0.2 + is-buffer: 2.0.5 + is-plain-obj: 4.1.0 + trough: 2.1.0 + vfile: 5.3.7 + dev: false + + /unist-util-generated@2.0.1: + resolution: {integrity: sha512-qF72kLmPxAw0oN2fwpWIqbXAVyEqUzDHMsbtPvOudIlUzXYFIeQIuxXQCRCFh22B7cixvU0MG7m3MW8FTq/S+A==} + dev: false + + /unist-util-is@5.2.1: + resolution: {integrity: sha512-u9njyyfEh43npf1M+yGKDGVPbY/JWEemg5nH05ncKPfi+kBbKBJoTdsogMu33uhytuLlv9y0O7GH7fEdwLdLQw==} + dependencies: + '@types/unist': 2.0.10 + dev: false + + /unist-util-position-from-estree@1.1.2: + resolution: {integrity: sha512-poZa0eXpS+/XpoQwGwl79UUdea4ol2ZuCYguVaJS4qzIOMDzbqz8a3erUCOmubSZkaOuGamb3tX790iwOIROww==} + dependencies: + '@types/unist': 2.0.10 + dev: false + + /unist-util-position@4.0.4: + resolution: {integrity: sha512-kUBE91efOWfIVBo8xzh/uZQ7p9ffYRtUbMRZBNFYwf0RK8koUMx6dGUfwylLOKmaT2cs4wSW96QoYUSXAyEtpg==} + dependencies: + '@types/unist': 2.0.10 + dev: false + + /unist-util-remove-position@4.0.2: + resolution: {integrity: sha512-TkBb0HABNmxzAcfLf4qsIbFbaPDvMO6wa3b3j4VcEzFVaw1LBKwnW4/sRJ/atSLSzoIg41JWEdnE7N6DIhGDGQ==} + dependencies: + '@types/unist': 2.0.10 + unist-util-visit: 4.1.2 + dev: false + + /unist-util-stringify-position@3.0.3: + resolution: {integrity: sha512-k5GzIBZ/QatR8N5X2y+drfpWG8IDBzdnVj6OInRNWm1oXrzydiaAT2OQiA8DPRRZyAKb9b6I2a6PxYklZD0gKg==} + dependencies: + '@types/unist': 2.0.10 + dev: false + + /unist-util-visit-parents@5.1.3: + resolution: {integrity: sha512-x6+y8g7wWMyQhL1iZfhIPhDAs7Xwbn9nRosDXl7qoPTSCy0yNxnKc+hWokFifWQIDGi154rdUqKvbCa4+1kLhg==} + dependencies: + '@types/unist': 2.0.10 + unist-util-is: 5.2.1 + dev: false + + /unist-util-visit@4.1.2: + resolution: {integrity: sha512-MSd8OUGISqHdVvfY9TPhyK2VdUrPgxkUtWSuMHF6XAAFuL4LokseigBnZtPnJMu+FbynTkFNnFlyjxpVKujMRg==} + dependencies: + '@types/unist': 2.0.10 + unist-util-is: 5.2.1 + unist-util-visit-parents: 5.1.3 + dev: false + /universalify@2.0.1: resolution: {integrity: sha512-gptHNQghINnc/vTGIk0SOFGFNXw7JVrlRUtConJRlvaw6DuX0wO5Jeko9sWrMBhh+PsYAZ7oXAiOnf/UKogyiw==} engines: {node: '>= 10.0.0'} @@ -5146,10 +5972,45 @@ packages: resolution: {integrity: sha512-pMZTvIkT1d+TFGvDOqodOclx0QWkkgi6Tdoa8gC8ffGAAqz9pzPTZWAybbsHHoED/ztMtkv/VoYTYyShUn81hA==} engines: {node: '>= 0.4.0'} + /uvu@0.5.6: + resolution: {integrity: sha512-+g8ENReyr8YsOc6fv/NVJs2vFdHBnBNdfE49rshrTzDWOlUx4Gq7KOS2GD8eqhy2j+Ejq29+SbKH8yjkAqXqoA==} + engines: {node: '>=8'} + hasBin: true + dependencies: + dequal: 2.0.3 + diff: 5.1.0 + kleur: 4.1.5 + sade: 1.8.1 + dev: false + /vary@1.1.2: resolution: {integrity: sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg==} engines: {node: '>= 0.8'} + /vfile-matter@3.0.1: + resolution: {integrity: sha512-CAAIDwnh6ZdtrqAuxdElUqQRQDQgbbIrYtDYI8gCjXS1qQ+1XdLoK8FIZWxJwn0/I+BkSSZpar3SOgjemQz4fg==} + dependencies: + '@types/js-yaml': 4.0.9 + is-buffer: 2.0.5 + js-yaml: 4.1.0 + dev: false + + /vfile-message@3.1.4: + resolution: {integrity: sha512-fa0Z6P8HUrQN4BZaX05SIVXic+7kE3b05PWAtPuYP9QLHsLKYR7/AlLW3NtOrpXRLeawpDLMsVkmk5DG0NXgWw==} + dependencies: + '@types/unist': 2.0.10 + unist-util-stringify-position: 3.0.3 + dev: false + + /vfile@5.3.7: + resolution: {integrity: sha512-r7qlzkgErKjobAmyNIkkSpizsFPYiUPuJb5pNW1RB4JcYVZhs4lIbVqk8XPk033CV/1z8ss5pkax8SuhGpcG8g==} + dependencies: + '@types/unist': 2.0.10 + is-buffer: 2.0.5 + unist-util-stringify-position: 3.0.3 + vfile-message: 3.1.4 + dev: false + /vite@4.5.0(@types/node@20.9.0): resolution: {integrity: sha512-ulr8rNLA6rkyFAlVWw2q5YJ91v098AFQ2R0PRFwPzREXOUJQPtFUG0t+/ZikhaOCDqFoDhN6/v8Sq0o4araFAw==} engines: {node: ^14.18.0 || >=16.0.0} @@ -5197,7 +6058,7 @@ packages: resolution: {integrity: sha512-/DyMEOrDgLKKIG0fmvtz+4dUX/3Ghozwgm6iPp8KRhvn+eQf9+Q7GWxVNMk3+uCPWfdXYC4ExGBckIXdFEfH1w==} engines: {node: '>=10.13.0'} - /webpack@5.89.0(@swc/core@1.3.96): + /webpack@5.89.0: resolution: {integrity: sha512-qyfIC10pOr70V+jkmud8tMfajraGCZMBWJtrmuBymQKCrLTRejBI8STDp1MCyZu/QTdZSeacCQYpYNQVOzX5kw==} engines: {node: '>=10.13.0'} hasBin: true @@ -5228,7 +6089,7 @@ packages: neo-async: 2.6.2 schema-utils: 3.3.0 tapable: 2.2.1 - terser-webpack-plugin: 5.3.9(@swc/core@1.3.96)(webpack@5.89.0) + terser-webpack-plugin: 5.3.9(webpack@5.89.0) watchpack: 2.4.0 webpack-sources: 3.2.3 transitivePeerDependencies: @@ -5342,6 +6203,6 @@ packages: engines: {node: '>=10'} dev: true -settings: - autoInstallPeers: true - excludeLinksFromLockfile: false + /zwitch@2.0.4: + resolution: {integrity: sha512-bXE4cR/kVZhKZX/RjPEflHaKVhUVl85noU3v6b8apfQEc1x4A+zBxjZ4lN8LqGd6WZ3dl98pY4o717VFmoPp+A==} + dev: false