diff --git a/.changeset/selfish-spies-clap.md b/.changeset/selfish-spies-clap.md
new file mode 100644
index 00000000..35906bab
--- /dev/null
+++ b/.changeset/selfish-spies-clap.md
@@ -0,0 +1,5 @@
+---
+"@devup-ui/wasm": patch
+---
+
+allow optional property of typography
diff --git a/.github/workflows/publish.yml b/.github/workflows/publish.yml
index bc58bf13..b90d0de0 100644
--- a/.github/workflows/publish.yml
+++ b/.github/workflows/publish.yml
@@ -54,3 +54,9 @@ jobs:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
NODE_AUTH_TOKEN: ${{ secrets.NPM_TOKEN }}
if: github.event_name == 'push' && github.ref == 'refs/heads/main'
+
+ - name: Upload artifact
+ uses: actions/upload-pages-artifact@v3
+ with:
+ path: ./apps/landing/out
+ if: github.event_name == 'push' && github.ref == 'refs/heads/main'
diff --git a/apps/landing/.gitignore b/apps/landing/.gitignore
new file mode 100644
index 00000000..ebe99d6c
--- /dev/null
+++ b/apps/landing/.gitignore
@@ -0,0 +1,42 @@
+# See https://help.github.com/articles/ignoring-files/ for more about ignoring files.
+
+# dependencies
+/node_modules
+/.pnp
+.pnp.*
+.yarn/*
+.df
+!.yarn/patches
+!.yarn/plugins
+!.yarn/releases
+!.yarn/versions
+
+# testing
+/coverage
+
+# next.js
+/.next/
+/out/
+
+# production
+/build
+
+# misc
+.DS_Store
+*.pem
+
+# debug
+npm-debug.log*
+yarn-debug.log*
+yarn-error.log*
+.pnpm-debug.log*
+
+# env files (can opt-in for committing if needed)
+.env*
+
+# vercel
+.vercel
+
+# typescript
+*.tsbuildinfo
+next-env.d.ts
diff --git a/apps/landing/README.md b/apps/landing/README.md
new file mode 100644
index 00000000..665152ea
--- /dev/null
+++ b/apps/landing/README.md
@@ -0,0 +1 @@
+## Nextjs App
diff --git a/apps/landing/devup.json b/apps/landing/devup.json
new file mode 100644
index 00000000..ab490c09
--- /dev/null
+++ b/apps/landing/devup.json
@@ -0,0 +1,470 @@
+{
+ "theme": {
+ "colors": {
+ "default": {
+ "primary": "#6159D4",
+ "secondary": "#85A5F2",
+ "link": "#006BFF",
+ "text": "#2F2F2F",
+ "background": "#FFFFFF",
+ "containerBackground": "#FFFFFF",
+ "border": "#E0E0E0",
+ "success": "#4CAF50",
+ "warning": "#FF9800",
+ "error": "#F44336",
+ "info": "#2196F3",
+ "base": "#FFFFFF",
+ "negativeBase": "#000000",
+ "title": "#1A1A1A",
+ "caption": "#A9A8B4",
+ "shadow": "#87878740",
+ "codeBg": "#3E3B41",
+ "cardBg": "#F8F8F8",
+ "buttonBlue": "#266CCD",
+ "joinBg": "#CDE2FA",
+ "third": "#918AE9",
+ "buttonBlueHover": "#1453AC",
+ "buttonBlueActive": "#19498B",
+ "textReverse": "#FFFFFF",
+ "footerTitle": "#A3A4B4",
+ "footerBg": "#E6E7ED",
+ "footerText": "#51575F",
+ "menuHover": "#F6F4FF",
+ "menuActive": "#EAE8FC",
+ "captionBold": "#878594",
+ "search": "#9C50FF"
+ },
+ "dark": {
+ "primary": "#737FE4",
+ "secondary": "#2A4586",
+ "link": "#006BFF",
+ "text": "#EDEDED",
+ "background": "#131313",
+ "containerBackground": "#1E1E1E",
+ "border": "#333333",
+ "success": "#4CAF50",
+ "warning": "#FF9800",
+ "error": "#F44336",
+ "info": "#2196F3",
+ "base": "#000000",
+ "negativeBase": "#FFFFFF",
+ "title": "#FAFAFA",
+ "shadow": "#62626240",
+ "codeBg": "#2E303C",
+ "cardBg": "#28272B",
+ "buttonBlue": "#0867AF",
+ "joinBg": "#2F363E",
+ "third": "#737FE4",
+ "buttonBlueHover": "#1453AC",
+ "buttonBlueActive": "#19498B",
+ "textReverse": "#2F2F2F",
+ "footerTitle": "#A3A4B4",
+ "footerBg": "#2E303C",
+ "footerText": "#FFFFFF",
+ "menuHover": "#3C404B",
+ "menuActive": "#283259",
+ "captionBold": "#878594",
+ "search": "#6FA4FF"
+ }
+ },
+ "typography": {
+ "body": [
+ {
+ "fontFamily": "Pretendard",
+ "fontSize": "14px",
+ "fontWeight": "500",
+ "lineHeight": "130%",
+ "letterSpacing": "-0.42px"
+ },
+ null,
+ null,
+ null,
+ {
+ "fontFamily": "Pretendard",
+ "fontSize": "16px",
+ "fontWeight": "500",
+ "lineHeight": "150%",
+ "letterSpacing": "-0.48px"
+ }
+ ],
+ "bodyReg": {
+ "fontFamily": "Pretendard",
+ "fontSize": "16px",
+ "fontWeight": "400",
+ "lineHeight": "150%",
+ "letterSpacing": "-0.48px"
+ },
+ "buttonL": [
+ {
+ "fontFamily": "Pretendard",
+ "fontSize": "17px",
+ "fontWeight": "800",
+ "lineHeight": "130%",
+ "letterSpacing": "-0.51px"
+ },
+ null,
+ null,
+ null,
+ {
+ "fontFamily": "Pretendard",
+ "fontSize": "20px",
+ "fontWeight": "800",
+ "lineHeight": "130%",
+ "letterSpacing": "-0.6px"
+ }
+ ],
+ "buttonLbold": [
+ {
+ "fontFamily": "Pretendard",
+ "fontSize": "17px",
+ "fontWeight": "700",
+ "lineHeight": "130%",
+ "letterSpacing": "-0.51px"
+ },
+ null,
+ null,
+ null,
+ {
+ "fontFamily": "Pretendard",
+ "fontSize": "18px",
+ "fontWeight": "700",
+ "lineHeight": "130%",
+ "letterSpacing": "-0.54px"
+ }
+ ],
+ "buttonLsemiB": [
+ {
+ "fontFamily": "Pretendard",
+ "fontSize": "17px",
+ "fontWeight": "600",
+ "lineHeight": "130%",
+ "letterSpacing": "-0.51px"
+ },
+ null,
+ null,
+ null,
+ {
+ "fontFamily": "Pretendard",
+ "fontSize": "18px",
+ "fontWeight": "600",
+ "lineHeight": "130%",
+ "letterSpacing": "-0.54px"
+ }
+ ],
+ "buttonM": [
+ {
+ "fontFamily": "Pretendard",
+ "fontSize": "15px",
+ "fontWeight": "600",
+ "lineHeight": "130%",
+ "letterSpacing": "-0.45px"
+ },
+ null,
+ null,
+ null,
+ {
+ "fontFamily": "Pretendard",
+ "fontSize": "17px",
+ "fontWeight": "600",
+ "lineHeight": "130%",
+ "letterSpacing": "-0.51px"
+ }
+ ],
+ "buttonS": [
+ {
+ "fontFamily": "Pretendard",
+ "fontSize": "14px",
+ "fontWeight": "800",
+ "lineHeight": "130%",
+ "letterSpacing": "-0.42px"
+ },
+ null,
+ null,
+ null,
+ {
+ "fontFamily": "Pretendard",
+ "fontSize": "15px",
+ "fontWeight": "700",
+ "lineHeight": "130%",
+ "letterSpacing": "-0.45px"
+ }
+ ],
+ "buttonSmid": [
+ {
+ "fontFamily": "Pretendard",
+ "fontSize": "14px",
+ "fontWeight": "500",
+ "lineHeight": "130%",
+ "letterSpacing": "-0.42px"
+ },
+ null,
+ null,
+ null,
+ {
+ "fontFamily": "Pretendard",
+ "fontSize": "15px",
+ "fontWeight": "500",
+ "lineHeight": "130%",
+ "letterSpacing": "-0.45px"
+ }
+ ],
+ "caption": {
+ "fontFamily": "Pretendard",
+ "fontSize": "14px",
+ "fontWeight": "500",
+ "lineHeight": "140%",
+ "letterSpacing": "-0.42px"
+ },
+ "captionBold": {
+ "fontFamily": "Pretendard",
+ "fontSize": "14px",
+ "fontWeight": "700",
+ "lineHeight": "130%",
+ "letterSpacing": "-0.42px"
+ },
+ "code": [
+ {
+ "fontFamily": "D2Coding",
+ "fontSize": "13px",
+ "fontWeight": "700",
+ "lineHeight": "150%",
+ "letterSpacing": "-0.39px"
+ },
+ null,
+ null,
+ null,
+ {
+ "fontFamily": "D2Coding",
+ "fontSize": "15px",
+ "fontWeight": "700",
+ "lineHeight": "150%",
+ "letterSpacing": "-0.45px"
+ }
+ ],
+ "footerMenu": [
+ {
+ "fontFamily": "Pretendard",
+ "fontSize": "13px",
+ "fontWeight": "500",
+ "lineHeight": "140%",
+ "letterSpacing": "-0.39px"
+ },
+ null,
+ null,
+ null,
+ {
+ "fontFamily": "Pretendard",
+ "fontSize": "14px",
+ "fontWeight": "500",
+ "lineHeight": "140%",
+ "letterSpacing": "-0.42px"
+ }
+ ],
+ "h1": [
+ {
+ "fontFamily": "Pretendard",
+ "fontSize": "38px",
+ "fontWeight": "800",
+ "lineHeight": "130%",
+ "letterSpacing": "-1.14px"
+ },
+ null,
+ null,
+ null,
+ {
+ "fontFamily": "Pretendard",
+ "fontSize": "52px",
+ "fontWeight": "800",
+ "lineHeight": "130%",
+ "letterSpacing": "-1.56px"
+ }
+ ],
+ "h2": [
+ {
+ "fontFamily": "Pretendard",
+ "fontSize": "36px",
+ "fontWeight": "800",
+ "lineHeight": "130%",
+ "letterSpacing": "-1.08px"
+ },
+ null,
+ null,
+ null,
+ {
+ "fontFamily": "Pretendard",
+ "fontSize": "48px",
+ "fontWeight": "800",
+ "lineHeight": "130%",
+ "letterSpacing": "-1.44px"
+ }
+ ],
+ "h3": [
+ {
+ "fontFamily": "Pretendard",
+ "fontSize": "32px",
+ "fontWeight": "700",
+ "lineHeight": "130%",
+ "letterSpacing": "-0.96px"
+ },
+ null,
+ null,
+ null,
+ {
+ "fontFamily": "Pretendard",
+ "fontSize": "42px",
+ "fontWeight": "700",
+ "lineHeight": "130%",
+ "letterSpacing": "-1.26px"
+ }
+ ],
+ "h4": [
+ {
+ "fontFamily": "Pretendard",
+ "fontSize": "28px",
+ "fontWeight": "700",
+ "lineHeight": "130%",
+ "letterSpacing": "-0.84px"
+ },
+ null,
+ null,
+ null,
+ {
+ "fontFamily": "Pretendard",
+ "fontSize": "36px",
+ "fontWeight": "700",
+ "lineHeight": "130%",
+ "letterSpacing": "-1.08px"
+ }
+ ],
+ "h5": [
+ {
+ "fontFamily": "Pretendard",
+ "fontSize": "24px",
+ "fontWeight": "600",
+ "lineHeight": "130%",
+ "letterSpacing": "-0.72px"
+ },
+ null,
+ null,
+ null,
+ {
+ "fontFamily": "Pretendard",
+ "fontSize": "30px",
+ "fontWeight": "600",
+ "lineHeight": "130%",
+ "letterSpacing": "-0.9px"
+ }
+ ],
+ "h6": [
+ {
+ "fontFamily": "Pretendard",
+ "fontSize": "18px",
+ "fontWeight": "600",
+ "lineHeight": "130%",
+ "letterSpacing": "-0.54px"
+ },
+ null,
+ null,
+ null,
+ {
+ "fontFamily": "Pretendard",
+ "fontSize": "24px",
+ "fontWeight": "600",
+ "lineHeight": "130%",
+ "letterSpacing": "-0.72px"
+ }
+ ],
+ "h6Reg": [
+ {
+ "fontFamily": "Pretendard",
+ "fontSize": "18px",
+ "fontWeight": "400",
+ "lineHeight": "130%",
+ "letterSpacing": "-0.54px"
+ },
+ null,
+ null,
+ null,
+ {
+ "fontFamily": "Pretendard",
+ "fontSize": "24px",
+ "fontWeight": "400",
+ "lineHeight": "130%",
+ "letterSpacing": "-0.72px"
+ }
+ ],
+ "small": [
+ {
+ "fontFamily": "Pretendard",
+ "fontSize": "11px",
+ "fontWeight": "300",
+ "lineHeight": "130%",
+ "letterSpacing": "-0.33px"
+ },
+ null,
+ null,
+ null,
+ {
+ "fontFamily": "Pretendard",
+ "fontSize": "12px",
+ "fontWeight": "400",
+ "lineHeight": "140%",
+ "letterSpacing": "-0.36px"
+ }
+ ],
+ "smallBold": {
+ "fontFamily": "Pretendard",
+ "fontSize": "12px",
+ "fontWeight": "800",
+ "lineHeight": "140%",
+ "letterSpacing": "-0.36px"
+ },
+ "textL": [
+ {
+ "fontFamily": "Pretendard",
+ "fontSize": "16px",
+ "fontWeight": "500",
+ "lineHeight": "130%",
+ "letterSpacing": "-0.48px"
+ },
+ null,
+ null,
+ null,
+ {
+ "fontFamily": "Pretendard",
+ "fontSize": "18px",
+ "fontWeight": "500",
+ "lineHeight": "150%",
+ "letterSpacing": "-0.54px"
+ }
+ ],
+ "textS": [
+ {
+ "fontFamily": "Pretendard",
+ "fontSize": "13px",
+ "fontWeight": "500",
+ "lineHeight": "140%",
+ "letterSpacing": "-0.39px"
+ },
+ null,
+ null,
+ null,
+ {
+ "fontFamily": "Pretendard",
+ "fontSize": "15px",
+ "fontWeight": "500",
+ "lineHeight": "140%",
+ "letterSpacing": "-0.45px"
+ }
+ ],
+ "textSbold": {
+ "fontFamily": "Pretendard",
+ "fontSize": "15px",
+ "fontWeight": "700",
+ "lineHeight": "140%",
+ "letterSpacing": "-0.45px"
+ }
+ }
+ }
+}
+
diff --git a/apps/landing/next.config.ts b/apps/landing/next.config.ts
new file mode 100644
index 00000000..b558310e
--- /dev/null
+++ b/apps/landing/next.config.ts
@@ -0,0 +1,14 @@
+import { DevupUI } from '@devup-ui/next-plugin'
+import createMDX from '@next/mdx'
+
+const withMDX = createMDX({})
+
+export default withMDX(
+ DevupUI(
+ {
+ pageExtensions: ['js', 'jsx', 'md', 'mdx', 'ts', 'tsx'],
+ output: 'export',
+ },
+ {},
+ ),
+)
diff --git a/apps/landing/package.json b/apps/landing/package.json
new file mode 100644
index 00000000..f8b8ab0e
--- /dev/null
+++ b/apps/landing/package.json
@@ -0,0 +1,32 @@
+{
+ "name": "landing",
+ "version": "0.1.0",
+ "type": "module",
+ "private": true,
+ "scripts": {
+ "dev": "next dev",
+ "build": "next build",
+ "start": "next start",
+ "lint": "eslint"
+ },
+ "dependencies": {
+ "@devup-ui/react": "workspace:*",
+ "@mdx-js/loader": "^3.1.0",
+ "@mdx-js/react": "^3.1.0",
+ "@next/mdx": "^15.1.4",
+ "@types/mdx": "^2.0.13",
+ "next": "^15.1.4",
+ "react": "^19.0.0",
+ "react-dom": "^19.0.0",
+ "react-syntax-highlighter": "^15.6.1",
+ "sanitize.css": "^13.0.0"
+ },
+ "devDependencies": {
+ "@devup-ui/next-plugin": "workspace:*",
+ "@types/node": "^22",
+ "@types/react": "^19",
+ "@types/react-dom": "^19",
+ "@types/react-syntax-highlighter": "^15.5.13",
+ "typescript": "^5"
+ }
+}
diff --git a/apps/landing/public/arrow.svg b/apps/landing/public/arrow.svg
new file mode 100644
index 00000000..a5204f63
--- /dev/null
+++ b/apps/landing/public/arrow.svg
@@ -0,0 +1,3 @@
+
+
+
diff --git a/apps/landing/public/discord-bg.svg b/apps/landing/public/discord-bg.svg
new file mode 100644
index 00000000..1d00a40c
--- /dev/null
+++ b/apps/landing/public/discord-bg.svg
@@ -0,0 +1,14 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/apps/landing/public/discord.svg b/apps/landing/public/discord.svg
new file mode 100644
index 00000000..b1488812
--- /dev/null
+++ b/apps/landing/public/discord.svg
@@ -0,0 +1,4 @@
+
+
+
diff --git a/apps/landing/public/file.svg b/apps/landing/public/file.svg
new file mode 100644
index 00000000..004145cd
--- /dev/null
+++ b/apps/landing/public/file.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/apps/landing/public/github.svg b/apps/landing/public/github.svg
new file mode 100644
index 00000000..8fe7a020
--- /dev/null
+++ b/apps/landing/public/github.svg
@@ -0,0 +1,4 @@
+
+
+
diff --git a/apps/landing/public/globe.svg b/apps/landing/public/globe.svg
new file mode 100644
index 00000000..567f17b0
--- /dev/null
+++ b/apps/landing/public/globe.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/apps/landing/public/heart.svg b/apps/landing/public/heart.svg
new file mode 100644
index 00000000..e423a10b
--- /dev/null
+++ b/apps/landing/public/heart.svg
@@ -0,0 +1,4 @@
+
+
+
diff --git a/apps/landing/public/icon.svg b/apps/landing/public/icon.svg
new file mode 100644
index 00000000..3a7b4064
--- /dev/null
+++ b/apps/landing/public/icon.svg
@@ -0,0 +1,9 @@
+
+
+
+
+
+
+
+
+
diff --git a/apps/landing/public/idea.svg b/apps/landing/public/idea.svg
new file mode 100644
index 00000000..6eff0dbf
--- /dev/null
+++ b/apps/landing/public/idea.svg
@@ -0,0 +1,7 @@
+
+
+
+
+
diff --git a/apps/landing/public/light.svg b/apps/landing/public/light.svg
new file mode 100644
index 00000000..289dcb98
--- /dev/null
+++ b/apps/landing/public/light.svg
@@ -0,0 +1,5 @@
+
+
+
diff --git a/apps/landing/public/logo.svg b/apps/landing/public/logo.svg
new file mode 100644
index 00000000..374efa91
--- /dev/null
+++ b/apps/landing/public/logo.svg
@@ -0,0 +1,30 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/apps/landing/public/next.svg b/apps/landing/public/next.svg
new file mode 100644
index 00000000..5174b28c
--- /dev/null
+++ b/apps/landing/public/next.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/apps/landing/public/notice.svg b/apps/landing/public/notice.svg
new file mode 100644
index 00000000..dae4ce65
--- /dev/null
+++ b/apps/landing/public/notice.svg
@@ -0,0 +1,9 @@
+
+
+
+
+
+
diff --git a/apps/landing/public/outlink.svg b/apps/landing/public/outlink.svg
new file mode 100644
index 00000000..89642afc
--- /dev/null
+++ b/apps/landing/public/outlink.svg
@@ -0,0 +1,4 @@
+
+
+
+
diff --git a/apps/landing/public/trophy.svg b/apps/landing/public/trophy.svg
new file mode 100644
index 00000000..bed741d9
--- /dev/null
+++ b/apps/landing/public/trophy.svg
@@ -0,0 +1,11 @@
+
+
+
+
+
+
+
diff --git a/apps/landing/public/vercel.svg b/apps/landing/public/vercel.svg
new file mode 100644
index 00000000..77053960
--- /dev/null
+++ b/apps/landing/public/vercel.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/apps/landing/public/white-logo.svg b/apps/landing/public/white-logo.svg
new file mode 100644
index 00000000..335c28b7
--- /dev/null
+++ b/apps/landing/public/white-logo.svg
@@ -0,0 +1,11 @@
+
+
+
+
+
+
+
+
+
diff --git a/apps/landing/public/window.svg b/apps/landing/public/window.svg
new file mode 100644
index 00000000..b2b2a44f
--- /dev/null
+++ b/apps/landing/public/window.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/apps/landing/src/app/(detail)/LeftMenu.tsx b/apps/landing/src/app/(detail)/LeftMenu.tsx
new file mode 100644
index 00000000..7363eb74
--- /dev/null
+++ b/apps/landing/src/app/(detail)/LeftMenu.tsx
@@ -0,0 +1,109 @@
+import { Box, Flex, Image, Text, VStack } from '@devup-ui/react'
+
+export function LeftMenu() {
+ return (
+
+
+
+ 개요
+
+
+
+
+
+ 설치
+
+
+
+
+ 개념
+
+
+
+
+
+
+
+
+ 유틸리티 퍼스트
+
+
+
+
+ 하이브리드 접근 방식
+
+
+
+
+ 헤드리스 컴포넌트
+
+
+
+
+
+
+ 구성 요소
+
+
+
+
+
+ API
+
+
+
+
+
+
+
+
+ 스타일이 지정됨
+
+
+
+
+ CSS
+
+
+
+
+
+
+ 테마
+
+
+
+
+
+
+
+
+ 테마 사용자 정의
+
+
+
+
+ 테마 토큰
+
+
+
+
+ 중단점
+
+
+
+
+ 구성 요소 테마
+
+
+
+
+
+ )
+}
diff --git a/apps/landing/src/app/(detail)/layout.tsx b/apps/landing/src/app/(detail)/layout.tsx
new file mode 100644
index 00000000..34d2f3bd
--- /dev/null
+++ b/apps/landing/src/app/(detail)/layout.tsx
@@ -0,0 +1,22 @@
+import 'sanitize.css'
+
+import { Flex } from '@devup-ui/react'
+
+import { DetailHeader } from '../../components/DetailHeader'
+import { LeftMenu } from './LeftMenu'
+
+export default function DetailLayout({
+ children,
+}: Readonly<{
+ children: React.ReactNode
+}>) {
+ return (
+ <>
+
+
+
+ {children}
+
+ >
+ )
+}
diff --git a/apps/landing/src/app/favicon.ico b/apps/landing/src/app/favicon.ico
new file mode 100644
index 00000000..718d6fea
Binary files /dev/null and b/apps/landing/src/app/favicon.ico differ
diff --git a/apps/landing/src/app/layout.tsx b/apps/landing/src/app/layout.tsx
new file mode 100644
index 00000000..80543566
--- /dev/null
+++ b/apps/landing/src/app/layout.tsx
@@ -0,0 +1,25 @@
+import 'sanitize.css'
+
+import type { Metadata } from 'next'
+
+import { Footer } from '../components/Footer'
+
+export const metadata: Metadata = {
+ title: 'Devup UI',
+ description: 'Zero Config, Zero FOUC, Zero Runtime, CSS in JS Preprocessor',
+}
+
+export default function RootLayout({
+ children,
+}: Readonly<{
+ children: React.ReactNode
+}>) {
+ return (
+
+
+ {children}
+
+
+
+ )
+}
diff --git a/apps/landing/src/app/page.tsx b/apps/landing/src/app/page.tsx
new file mode 100644
index 00000000..6c5930be
--- /dev/null
+++ b/apps/landing/src/app/page.tsx
@@ -0,0 +1,152 @@
+import { Box, Flex, Image, Text, VStack } from '@devup-ui/react'
+
+import { CodeBoard } from '../components/CodeBoard'
+import { Container } from '../components/Container'
+import { Discord } from '../components/Discord'
+import { Header } from '../components/Header'
+
+export default function HomePage() {
+ return (
+ <>
+
+
+
+
+
+
+ Lorem ipsum dolor sit amet,
+
+ consectetur adipiscing elit.
+
+
+ Etiam sit amet feugiat turpis. Proin nec ante a sem vestibulum
+ sodales non ut ex. Morbi diam turpis, fringilla vitae enim et,
+ egestas consequat nibh. Etiam auctor cursus urna sit amet
+ elementum.
+
+
+
+
+
+
+ Get started
+
+
+
+
+
+
+
+
+
+
+
+ Lorem ipsum dolor sit amet.
+
+
+ Etiam sit amet feugiat turpis. Proin nec ante a sem vestibulum
+ sodales non ut ex. Morbi diam turpis, fringilla vitae enim et,
+ egestas consequat nibh.
+
+
+
+
+
+
+
+
+
+
+ Feature title
+
+
+ Lorem ipsum dolor sit amet.
+
+
+
+
+
+
+
+
+
+ Feature title
+
+
+ Lorem ipsum dolor sit amet. Etiam sit amet feugiat turpis.
+ Proin nec ante a sem vestibulum sodales non ut ex.
+
+
+
+
+
+
+
+
+
+
+
+ Feature title
+
+
+ Lorem ipsum dolor sit amet. Etiam sit amet feugiat turpis.
+ Proin nec ante a sem vestibulum.
+
+
+
+
+
+
+
+
+
+ Feature title
+
+
+ Lorem ipsum dolor sit amet. Etiam sit amet feugiat turpis.
+
+
+
+
+
+
+
+
+
+
+
+
+ >
+ )
+}
diff --git a/apps/landing/src/components/CodeBoard.tsx b/apps/landing/src/components/CodeBoard.tsx
new file mode 100644
index 00000000..a4665196
--- /dev/null
+++ b/apps/landing/src/components/CodeBoard.tsx
@@ -0,0 +1,94 @@
+import { Box, Flex, Text, VStack } from '@devup-ui/react'
+import SyntaxHighlighter from 'react-syntax-highlighter'
+import { docco } from 'react-syntax-highlighter/dist/esm/styles/hljs'
+
+const CODE = `import { css } from "./styled-system/css";
+function App() {
+ return (
+
+
+
+
+
+ John Doe
+
+
+ john@doe.com
+
+
+ );
+}`
+
+export function CodeBoard() {
+ return (
+ <>
+
+
+
+
+ {CODE}
+
+
+
+
+
+
+ code menu
+
+
+
+ code menu
+
+
+
+
+ code menu
+
+
+
+
+ >
+ )
+}
diff --git a/apps/landing/src/components/Container.tsx b/apps/landing/src/components/Container.tsx
new file mode 100644
index 00000000..8857a5be
--- /dev/null
+++ b/apps/landing/src/components/Container.tsx
@@ -0,0 +1,12 @@
+import { Box } from '@devup-ui/react'
+
+interface ContainerProps {
+ children: React.ReactNode
+}
+export function Container({ children }: ContainerProps) {
+ return (
+
+ {children}
+
+ )
+}
diff --git a/apps/landing/src/components/DetailHeader.tsx b/apps/landing/src/components/DetailHeader.tsx
new file mode 100644
index 00000000..80eeb1cd
--- /dev/null
+++ b/apps/landing/src/components/DetailHeader.tsx
@@ -0,0 +1,63 @@
+import { Flex, Image, Text, VStack } from '@devup-ui/react'
+
+export function DetailHeader() {
+ return (
+
+
+
+
+
+
+
+
+ Docs
+
+
+
+
+ Team
+
+
+
+
+
+ Search documentation...
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ )
+}
diff --git a/apps/landing/src/components/Discord.tsx b/apps/landing/src/components/Discord.tsx
new file mode 100644
index 00000000..ff61ca75
--- /dev/null
+++ b/apps/landing/src/components/Discord.tsx
@@ -0,0 +1,38 @@
+import { Center, Flex, Image, Text, VStack } from '@devup-ui/react'
+
+export function Discord() {
+ return (
+
+
+
+
+ Join our community
+
+
+ Etiam sit amet feugiat turpis. Proin nec ante a sem vestibulum
+ sodales non ut ex. Morbi diam turpis, fringilla vitae enim et,
+ egestas consequat nibh.
+
+
+
+
+
+ Join our Discord
+
+
+
+
+
+
+ )
+}
diff --git a/apps/landing/src/components/Footer.tsx b/apps/landing/src/components/Footer.tsx
new file mode 100644
index 00000000..635e8bb5
--- /dev/null
+++ b/apps/landing/src/components/Footer.tsx
@@ -0,0 +1,74 @@
+import { Flex, Image, Text, VStack } from '@devup-ui/react'
+
+export function Footer() {
+ return (
+
+
+
+
+ 메뉴 타이틀 1
+
+
+
+ 상세 메뉴 1
+
+
+ 상세 메뉴 2
+
+
+ 상세 메뉴 3
+
+
+ 상세 메뉴 4
+
+
+ 상세 메뉴 5
+
+
+
+
+
+ 메뉴 타이틀 2
+
+
+ 상세 메뉴 1
+
+
+ 상세 메뉴 2
+
+
+
+
+ 메뉴 타이틀 3
+
+
+ 상세 메뉴 1
+
+
+ 상세 메뉴 2
+
+
+ 상세 메뉴 3
+
+
+ 상세 메뉴 4
+
+
+
+
+
+
+
+
+
+ 상호: (주)데브파이브 | 대표자명: 오정민 | 사업자등록번호:
+ 868-86-03159 주소: 경기 고양시 덕양구 마상로140번길 81 4층
+
+
+ Copyright © 2021-2024 데브파이브. All Rights Reserved.
+
+
+
+
+ )
+}
diff --git a/apps/landing/src/components/Header/index.tsx b/apps/landing/src/components/Header/index.tsx
new file mode 100644
index 00000000..ebaa757d
--- /dev/null
+++ b/apps/landing/src/components/Header/index.tsx
@@ -0,0 +1,48 @@
+import { Box, Flex, Image, Text } from '@devup-ui/react'
+
+import { Container } from '../Container'
+
+export function Header() {
+ return (
+
+
+
+
+
+
+
+
+
+ Docs
+
+
+
+
+ Team
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ )
+}
diff --git a/apps/landing/tsconfig.json b/apps/landing/tsconfig.json
new file mode 100644
index 00000000..ab49c986
--- /dev/null
+++ b/apps/landing/tsconfig.json
@@ -0,0 +1,41 @@
+{
+ "compilerOptions": {
+ "target": "ES2017",
+ "lib": [
+ "dom",
+ "dom.iterable",
+ "esnext"
+ ],
+ "allowJs": true,
+ "skipLibCheck": true,
+ "strict": true,
+ "noEmit": true,
+ "esModuleInterop": true,
+ "module": "esnext",
+ "moduleResolution": "bundler",
+ "resolveJsonModule": true,
+ "isolatedModules": true,
+ "jsx": "preserve",
+ "incremental": true,
+ "plugins": [
+ {
+ "name": "next"
+ }
+ ],
+ "paths": {
+ "@/*": [
+ "./src/*"
+ ]
+ }
+ },
+ "include": [
+ "next-env.d.ts",
+ "**/*.ts",
+ "**/*.tsx",
+ ".next/types/**/*.ts",
+ ".df/*.d.ts"
+ ],
+ "exclude": [
+ "node_modules"
+ ]
+}
diff --git a/bindings/devup-ui-wasm/src/lib.rs b/bindings/devup-ui-wasm/src/lib.rs
index 0bde53c0..185c584d 100644
--- a/bindings/devup-ui-wasm/src/lib.rs
+++ b/bindings/devup-ui-wasm/src/lib.rs
@@ -108,21 +108,21 @@ pub fn code_extract(
}
pub fn object_to_typography(obj: Object, level: u8) -> Result {
Ok(Typography::new(
- Reflect::get(&obj, &JsValue::from_str("fontFamily"))?
- .as_string()
- .unwrap(),
- Reflect::get(&obj, &JsValue::from_str("fontSize"))?
- .as_string()
- .unwrap(),
- Reflect::get(&obj, &JsValue::from_str("fontWeight"))?
- .as_string()
- .unwrap(),
- Reflect::get(&obj, &JsValue::from_str("lineHeight"))?
- .as_string()
- .unwrap(),
- Reflect::get(&obj, &JsValue::from_str("letterSpacing"))?
- .as_string()
- .unwrap(),
+ Reflect::get(&obj, &JsValue::from_str("fontFamily"))
+ .map(|v| v.as_string())
+ .unwrap_or(None),
+ Reflect::get(&obj, &JsValue::from_str("fontSize"))
+ .map(|v| v.as_string())
+ .unwrap_or(None),
+ Reflect::get(&obj, &JsValue::from_str("fontWeight"))
+ .map(|v| v.as_string())
+ .unwrap_or(None),
+ Reflect::get(&obj, &JsValue::from_str("lineHeight"))
+ .map(|v| v.as_string())
+ .unwrap_or(None),
+ Reflect::get(&obj, &JsValue::from_str("letterSpacing"))
+ .map(|v| v.as_string())
+ .unwrap_or(None),
level,
))
}
diff --git a/bindings/devup-ui-wasm/tests/wasm.rs b/bindings/devup-ui-wasm/tests/wasm.rs
index 4a060331..aacebfca 100644
--- a/bindings/devup-ui-wasm/tests/wasm.rs
+++ b/bindings/devup-ui-wasm/tests/wasm.rs
@@ -38,10 +38,10 @@ fn test_object_to_typography() {
)
.unwrap();
let typography = object_to_typography(obj, 0).unwrap();
- assert_eq!(typography.font_family, "Arial");
- assert_eq!(typography.font_size, "12px");
- assert_eq!(typography.font_weight, "bold");
- assert_eq!(typography.line_height, "1.5");
- assert_eq!(typography.letter_spacing, "1px");
+ assert_eq!(typography.font_family.unwrap(), "Arial");
+ assert_eq!(typography.font_size.unwrap(), "12px");
+ assert_eq!(typography.font_weight.unwrap(), "bold");
+ assert_eq!(typography.line_height.unwrap(), "1.5");
+ assert_eq!(typography.letter_spacing.unwrap(), "1px");
assert_eq!(typography.level, 0);
}
diff --git a/libs/sheet/src/theme.rs b/libs/sheet/src/theme.rs
index cf6a8e31..b0aeed3b 100644
--- a/libs/sheet/src/theme.rs
+++ b/libs/sheet/src/theme.rs
@@ -96,21 +96,21 @@ impl Color {
}
}
pub struct Typography {
- pub font_family: String,
- pub font_size: String,
- pub font_weight: String,
- pub line_height: String,
- pub letter_spacing: String,
+ pub font_family: Option,
+ pub font_size: Option,
+ pub font_weight: Option,
+ pub line_height: Option,
+ pub letter_spacing: Option,
pub level: u8,
}
impl Typography {
pub fn new(
- font_family: String,
- font_size: String,
- font_weight: String,
- line_height: String,
- letter_spacing: String,
+ font_family: Option,
+ font_size: Option,
+ font_weight: Option,
+ line_height: Option,
+ letter_spacing: Option,
level: u8,
) -> Self {
Self {
@@ -168,27 +168,43 @@ impl Theme {
let mut css = self.colors.to_css();
for ty in self.typography.iter() {
for t in ty.1.iter() {
+ let css_content = format!(
+ "{}{}{}{}{}",
+ t.font_family
+ .clone()
+ .map(|v| format!("font-family:{};", v))
+ .unwrap_or("".to_string()),
+ t.font_size
+ .clone()
+ .map(|v| format!("font-size:{};", v))
+ .unwrap_or("".to_string()),
+ t.font_weight
+ .clone()
+ .map(|v| format!("font-weight:{};", v))
+ .unwrap_or("".to_string()),
+ t.line_height
+ .clone()
+ .map(|v| format!("line-height:{};", v))
+ .unwrap_or("".to_string()),
+ t.letter_spacing
+ .clone()
+ .map(|v| format!("letter-spacing:{}", v))
+ .unwrap_or("".to_string())
+ );
+ if css_content.is_empty() {
+ continue;
+ }
+ let typo_css = format!(".typo-{}{{{}}}", ty.0, css_content);
+
if t.level == 0 {
- css.push_str(
- format!(
- ".typo-{}{{font-family:{};font-size:{};font-weight:{};line-height:{};letter-spacing:{}}}",
- ty.0, t.font_family, t.font_size, t.font_weight, t.line_height, t.letter_spacing
- )
- .as_str(),
- );
+ css.push_str(typo_css.as_str());
} else {
let media = self
.break_points
.get(t.level as usize)
.map(|v| format!("(min-width:{}px)", v));
if let Some(media) = media {
- css.push_str(
- format!(
- "\n@media {}{{.typo-{}{{font-family:{};font-size:{};font-weight:{};line-height:{};letter-spacing:{}}}}}",
- media, ty.0, t.font_family, t.font_size, t.font_weight, t.line_height, t.letter_spacing
- )
- .as_str(),
- );
+ css.push_str(format!("\n@media {}{{{}}}", media, typo_css).as_str());
}
}
}
@@ -215,19 +231,19 @@ mod tests {
"default".to_string(),
vec![
Typography::new(
- "Arial".to_string(),
- "16px".to_string(),
- "400".to_string(),
- "1.5".to_string(),
- "0.5".to_string(),
+ Some("Arial".to_string()),
+ Some("16px".to_string()),
+ Some("400".to_string()),
+ Some("1.5".to_string()),
+ Some("0.5".to_string()),
0,
),
Typography::new(
- "Arial".to_string(),
- "24px".to_string(),
- "400".to_string(),
- "1.5".to_string(),
- "0.5".to_string(),
+ Some("Arial".to_string()),
+ Some("24px".to_string()),
+ Some("400".to_string()),
+ Some("1.5".to_string()),
+ Some("0.5".to_string()),
1,
),
],
diff --git a/packages/react/src/types/props/position.ts b/packages/react/src/types/props/position.ts
index 5382d527..ca8bdbdb 100644
--- a/packages/react/src/types/props/position.ts
+++ b/packages/react/src/types/props/position.ts
@@ -17,5 +17,6 @@ export interface DevupUiPositionProps {
float?: ResponsiveValue
clear?: ResponsiveValue
position?: ResponsiveValue
+ pos?: ResponsiveValue
zIndex?: ResponsiveValue
}
diff --git a/packages/webpack-plugin/src/__tests__/loader.test.ts b/packages/webpack-plugin/src/__tests__/loader.test.ts
index 4abbaa2d..a6faf6bb 100644
--- a/packages/webpack-plugin/src/__tests__/loader.test.ts
+++ b/packages/webpack-plugin/src/__tests__/loader.test.ts
@@ -23,6 +23,7 @@ describe('devupUILoader', () => {
},
},
}),
+ addDependency: vi.fn(),
async: vi.fn().mockReturnValue(vi.fn()),
resourcePath: 'node_modules/package/index.ts',
}
@@ -47,6 +48,7 @@ describe('devupUILoader', () => {
}),
async: vi.fn().mockReturnValue(vi.fn()),
resourcePath: 'node_modules/package/index.css',
+ addDependency: vi.fn(),
}
devupUILoader.bind(t as any)(
Buffer.from('code'),
@@ -69,6 +71,7 @@ describe('devupUILoader', () => {
}),
async: vi.fn().mockReturnValue(vi.fn()),
resourcePath: 'index.tsx',
+ addDependency: vi.fn(),
}
vi.mocked(codeExtract).mockReturnValue({
code: 'code',
@@ -102,6 +105,7 @@ describe('devupUILoader', () => {
}),
async: vi.fn().mockReturnValue(vi.fn()),
resourcePath: 'index.tsx',
+ addDependency: vi.fn(),
}
vi.mocked(codeExtract).mockReturnValue({
code: 'code',
@@ -135,6 +139,7 @@ describe('devupUILoader', () => {
}),
async: vi.fn().mockReturnValue(vi.fn()),
resourcePath: 'index.tsx',
+ addDependency: vi.fn(),
}
vi.mocked(codeExtract).mockImplementation(() => {
throw new Error('error')
@@ -158,6 +163,7 @@ describe('devupUILoader', () => {
}),
async: vi.fn().mockReturnValue(vi.fn()),
resourcePath: 'index.tsx',
+ addDependency: vi.fn(),
}
vi.mocked(codeExtract).mockReturnValue({
code: 'code',
diff --git a/packages/webpack-plugin/src/loader.ts b/packages/webpack-plugin/src/loader.ts
index b694d04c..17b6e109 100644
--- a/packages/webpack-plugin/src/loader.ts
+++ b/packages/webpack-plugin/src/loader.ts
@@ -23,6 +23,8 @@ const devupUILoader: RawLoaderDefinitionFunction =
callback(null, source)
return
}
+ this.addDependency(cssFile)
+
try {
const { code, css } = codeExtract(
this.resourcePath,
diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml
index a4b8abb2..8c6d0b1b 100644
--- a/pnpm-lock.yaml
+++ b/pnpm-lock.yaml
@@ -30,6 +30,58 @@ importers:
specifier: ^2.1.8
version: 2.1.8(@types/node@22.10.7)(terser@5.37.0)
+ apps/landing:
+ dependencies:
+ '@devup-ui/react':
+ specifier: workspace:*
+ version: link:../../packages/react
+ '@mdx-js/loader':
+ specifier: ^3.1.0
+ version: 3.1.0(acorn@8.14.0)(webpack@5.97.1)
+ '@mdx-js/react':
+ specifier: ^3.1.0
+ version: 3.1.0(@types/react@19.0.7)(react@19.0.0)
+ '@next/mdx':
+ specifier: ^15.1.4
+ version: 15.1.4(@mdx-js/loader@3.1.0(acorn@8.14.0)(webpack@5.97.1))(@mdx-js/react@3.1.0(@types/react@19.0.7)(react@19.0.0))
+ '@types/mdx':
+ specifier: ^2.0.13
+ version: 2.0.13
+ next:
+ specifier: ^15.1.4
+ version: 15.1.4(@babel/core@7.26.0)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)
+ react:
+ specifier: ^19.0.0
+ version: 19.0.0
+ react-dom:
+ specifier: ^19.0.0
+ version: 19.0.0(react@19.0.0)
+ react-syntax-highlighter:
+ specifier: ^15.6.1
+ version: 15.6.1(react@19.0.0)
+ sanitize.css:
+ specifier: ^13.0.0
+ version: 13.0.0
+ devDependencies:
+ '@devup-ui/next-plugin':
+ specifier: workspace:*
+ version: link:../../packages/next-plugin
+ '@types/node':
+ specifier: ^22
+ version: 22.10.7
+ '@types/react':
+ specifier: ^19
+ version: 19.0.7
+ '@types/react-dom':
+ specifier: ^19
+ version: 19.0.3(@types/react@19.0.7)
+ '@types/react-syntax-highlighter':
+ specifier: ^15.5.13
+ version: 15.5.13
+ typescript:
+ specifier: ^5
+ version: 5.7.3
+
apps/next:
dependencies:
'@devup-ui/react':
@@ -1521,6 +1573,23 @@ packages:
'@manypkg/get-packages@1.1.3':
resolution: {integrity: sha512-fo+QhuU3qE/2TQMQmbVMqaQ6EWbMhi4ABWP+O4AM1NqPBuy0OrApV5LO6BrrgnhtAHS2NH6RrVk9OL181tTi8A==}
+ '@mdx-js/loader@3.1.0':
+ resolution: {integrity: sha512-xU/lwKdOyfXtQGqn3VnJjlDrmKXEvMi1mgYxVmukEUtVycIz1nh7oQ40bKTd4cA7rLStqu0740pnhGYxGoqsCg==}
+ peerDependencies:
+ webpack: '>=5'
+ peerDependenciesMeta:
+ webpack:
+ optional: true
+
+ '@mdx-js/mdx@3.1.0':
+ resolution: {integrity: sha512-/QxEhPAvGwbQmy1Px8F899L5Uc2KZ6JtXwlCgJmjSTBedwOZkByYcBG4GceIGPXRDsmfxhHazuS+hlOShRLeDw==}
+
+ '@mdx-js/react@3.1.0':
+ resolution: {integrity: sha512-QjHtSaoameoalGnKDT3FoIl4+9RwyTmo9ZJGBdLOks/YOiWHoRDI3PUwEzOE7kEmGcV3AFcp9K6dYu9rEuKLAQ==}
+ peerDependencies:
+ '@types/react': '>=16'
+ react: '>=16'
+
'@microsoft/api-extractor-model@7.30.2':
resolution: {integrity: sha512-3/t2F+WhkJgBzSNwlkTIL0tBgUoBqDqL66pT+nh2mPbM0NIDGVGtpqbGWPgHIzn/mn7kGS/Ep8D8po58e8UUIw==}
@@ -1537,6 +1606,17 @@ packages:
'@next/env@15.1.4':
resolution: {integrity: sha512-2fZ5YZjedi5AGaeoaC0B20zGntEHRhi2SdWcu61i48BllODcAmmtj8n7YarSPt4DaTsJaBFdxQAVEVzgmx2Zpw==}
+ '@next/mdx@15.1.4':
+ resolution: {integrity: sha512-GsmKCWPDW6Qas4/yL+zj7RLGrDsVu89F42/S9pVcPTvYmXNK1PqRT6H7outQy6Ox/AGB8As1lxPvk4dJmDIm7w==}
+ peerDependencies:
+ '@mdx-js/loader': '>=0.15.0'
+ '@mdx-js/react': '>=0.15.0'
+ peerDependenciesMeta:
+ '@mdx-js/loader':
+ optional: true
+ '@mdx-js/react':
+ optional: true
+
'@next/swc-darwin-arm64@15.1.4':
resolution: {integrity: sha512-wBEMBs+np+R5ozN1F8Y8d/Dycns2COhRnkxRc+rvnbXke5uZBHkUGFgWxfTXn5rx7OLijuUhyfB+gC/ap58dDw==}
engines: {node: '>= 10'}
@@ -1748,6 +1828,9 @@ packages:
'@ts-morph/common@0.20.0':
resolution: {integrity: sha512-7uKjByfbPpwuzkstL3L5MQyuXPSKdoNG93Fmi2JoDcTf3pEP731JdRFAduRVkOs8oqxPsXKA+ScrWkdQ8t/I+Q==}
+ '@types/acorn@4.0.6':
+ resolution: {integrity: sha512-veQTnWP+1D/xbxVrPC3zHnCZRjSrKfhbMUlEA43iMZLu7EsnTtkJklIuwrCPbOi8YkvDQAiW05VQQFvvz9oieQ==}
+
'@types/argparse@1.0.38':
resolution: {integrity: sha512-ebDJ9b0e702Yr7pWgB0jzm+CX4Srzz8RcXtLJDJB+BSccqMa36uyH/zUsSYao5+BD1ytv3k3rPYCq4mAE1hsXA==}
@@ -1763,18 +1846,39 @@ packages:
'@types/babel__traverse@7.20.6':
resolution: {integrity: sha512-r1bzfrm0tomOI8g1SzvCaQHo6Lcv6zu0EA+W2kHrt8dyrHQxGzBBL4kdkzIS+jBMV+EYcMAEAqXqYaLJq5rOZg==}
+ '@types/debug@4.1.12':
+ resolution: {integrity: sha512-vIChWdVG3LG1SMxEvI/AK+FWJthlrqlTu7fbrlywTkkaONwk/UAGaULXRlf8vkzFBLVm0zkMdCquhL5aOjhXPQ==}
+
'@types/eslint-scope@3.7.7':
resolution: {integrity: sha512-MzMFlSLBqNF2gcHWO0G1vP/YQyfvrxZ0bF+u7mzUdZ1/xK4A4sru+nraZz5i3iEIk1l1uyicaDVTB4QbbEkAYg==}
'@types/eslint@9.6.1':
resolution: {integrity: sha512-FXx2pKgId/WyYo2jXw63kk7/+TY7u7AziEJxJAnSFzHlqTAS3Ync6SvgYAN/k4/PQpnnVuzoMuVnByKK2qp0ag==}
+ '@types/estree-jsx@1.0.5':
+ resolution: {integrity: sha512-52CcUVNFyfb1A2ALocQw/Dd1BQFNmSdkuC3BkZ6iqhdMfQz7JWOFRuJFloOzjk+6WijU56m9oKXFAXc7o3Towg==}
+
'@types/estree@1.0.6':
resolution: {integrity: sha512-AYnb1nQyY49te+VRAVgmzfcgjYS91mY5P0TKUDCLEM+gNnA+3T6rWITXRLYCpahpqSQbN5cE+gHpnPyXjHWxcw==}
+ '@types/hast@2.3.10':
+ resolution: {integrity: sha512-McWspRw8xx8J9HurkVBfYj0xKoE25tOFlHGdx4MJ5xORQrMGZNqJhVQWaIbm6Oyla5kYOXtDiopzKRJzEOkwJw==}
+
+ '@types/hast@3.0.4':
+ resolution: {integrity: sha512-WPs+bbQw5aCj+x6laNGWLH3wviHtoCv/P3+otBhbOhJgG8qtpdAMlTCxLtsTWA7LH1Oh/bFCHsBn0TPS5m30EQ==}
+
'@types/json-schema@7.0.15':
resolution: {integrity: sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA==}
+ '@types/mdast@4.0.4':
+ resolution: {integrity: sha512-kGaNbPh1k7AFzgpud/gMdvIm5xuECykRR+JnWKQno9TAXVa6WIVCGTPvYGekIDL4uwCZQSYbUxNBSb1aUo79oA==}
+
+ '@types/mdx@2.0.13':
+ resolution: {integrity: sha512-+OWZQfAYyio6YkJb3HLxDrvnx6SWWDbC0zVPfBRzUk0/nqoDyf6dNxQi3eArPe8rJ473nobTMQ/8Zk+LxJ+Yuw==}
+
+ '@types/ms@0.7.34':
+ resolution: {integrity: sha512-nG96G3Wp6acyAgJqGasjODb+acrI7KltPiRxzHPXnP3NgI28bpQDRv53olbqGXbfcgF5aiiHmO3xpwEpS5Ld9g==}
+
'@types/node@12.20.55':
resolution: {integrity: sha512-J8xLz7q2OFulZ2cyGTLE1TbbZcjpno7FaN6zdJNrgAdrJ+DZzh/uFR6YrTb4C+nXakvud8Q4+rbhoIWlYQbUFQ==}
@@ -1789,12 +1893,21 @@ packages:
peerDependencies:
'@types/react': ^19.0.0
+ '@types/react-syntax-highlighter@15.5.13':
+ resolution: {integrity: sha512-uLGJ87j6Sz8UaBAooU0T6lWJ0dBmjZgN1PZTrj05TNql2/XpC6+4HhMT5syIdFUUt+FASfCeLLv4kBygNU+8qA==}
+
'@types/react@19.0.7':
resolution: {integrity: sha512-MoFsEJKkAtZCrC1r6CM8U22GzhG7u2Wir8ons/aCKH6MBdD1ibV24zOSSkdZVUKqN5i396zG5VKLYZ3yaUZdLA==}
'@types/stylis@4.2.7':
resolution: {integrity: sha512-VgDNokpBoKF+wrdvhAAfS55OMQpL6QRglwTwNC3kIgBrzZxA4WsFj+2eLfEA/uMUDzBcEhYmjSbwQakn/i3ajA==}
+ '@types/unist@2.0.11':
+ resolution: {integrity: sha512-CmBKiL6NNo/OqgmMn95Fk9Whlp2mtvIv+KNpQKN2F4SjvrEesubTRWGYSg+BnWZOnlCaSTU1sMpsBOzgbYhnsA==}
+
+ '@types/unist@3.0.3':
+ resolution: {integrity: sha512-ko/gIFJRv177XgZsZcBwnqJN5x/Gien8qNOn0D5bQU/zAzVf9Zt3BlcUiLqhV9y4ARk0GbT3tnUiPNgnTXzc/Q==}
+
'@types/webpack@5.28.5':
resolution: {integrity: sha512-wR87cgvxj3p6D0Crt1r5avwqffqPXUkNlnQ1mjU93G7gCuFjufZR4I6j8cz5g1F1tTYpfOOFvly+cmIQwL9wvw==}
@@ -1845,6 +1958,9 @@ packages:
resolution: {integrity: sha512-v/BpkeeYAsPkKCkR8BDwcno0llhzWVqPOamQrAEMdpZav2Y9OVjd9dwJyBLJWwf335B5DmlifECIkZRJCaGaHA==}
engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
+ '@ungap/structured-clone@1.2.1':
+ resolution: {integrity: sha512-fEzPV3hSkSMltkw152tJKNARhOupqbH96MZWyRjNaYZOMIzbrTeQDG+MTc6Mr2pgzFQzFxAfmhGDNP5QK++2ZA==}
+
'@vitejs/plugin-react@4.3.4':
resolution: {integrity: sha512-SCCPBJtYLdE8PX/7ZQAs1QAZ8Jqwih+0VBLum1EGqmCCQal+MIUqLCzj3ZUy8ufbC0cAM4LRlSTm7IQJwWT4ug==}
engines: {node: ^14.18.0 || >=16.0.0}
@@ -2294,6 +2410,10 @@ packages:
resolution: {integrity: sha512-Izi8RQcffqCeNVgFigKli1ssklIbpHnCYc6AknXGYoB6grJqyeby7jv12JUQgmTAnIDnbck1uxksT4dzN3PWBA==}
engines: {node: '>=12'}
+ astring@1.9.0:
+ resolution: {integrity: sha512-LElXdjswlqjWrPpJFg1Fx4wpkOCxj1TDHlSV4PlaRxHGWko024xICaa97ZkMfs6DRKlCguiAI+rbXv5GWwXIkg==}
+ hasBin: true
+
available-typed-arrays@1.0.7:
resolution: {integrity: sha512-wvUjBtSGN7+7SjNpq/9M2Tg350UZD3q62IFZLbRAR1bSMlCo1ZaeW+BJ+D090e4hIIZLBcTDWe4Mh4jvUDajzQ==}
engines: {node: '>= 0.4'}
@@ -2324,6 +2444,9 @@ packages:
peerDependencies:
'@babel/core': ^7.4.0 || ^8.0.0-0 <8.0.0
+ bail@2.0.2:
+ resolution: {integrity: sha512-0xO6mYd7JB2YesxDKplafRpsiOzPt9V02ddPCLbY1xYGPOX24NTyN50qnUxgCPcSoYMhKpAuBTjQoRZCAkUDRw==}
+
balanced-match@1.0.2:
resolution: {integrity: sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==}
@@ -2381,6 +2504,9 @@ packages:
caniuse-lite@1.0.30001692:
resolution: {integrity: sha512-A95VKan0kdtrsnMubMKxEKUKImOPSuCpYgxSQBo036P5YYgVIcOYJEgt/txJWqObiRQeISNCfef9nvlQ0vbV7A==}
+ ccount@2.0.1:
+ resolution: {integrity: sha512-eyrF0jiFpY+3drT6383f1qhkbGsLSifNAjA61IUjZjmLCWjItY6LB9ft9YhoDgwfmclB2zhu51Lc7+95b8NRAg==}
+
chai@5.1.2:
resolution: {integrity: sha512-aGtmf24DW6MLHHG5gCx4zaI3uBq3KRtxeVs0DjFH6Z0rDNbsvTxFASFvdj79pxjxZ8/5u3PIiN3IwEIQkiiuPw==}
engines: {node: '>=12'}
@@ -2389,6 +2515,27 @@ packages:
resolution: {integrity: sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==}
engines: {node: '>=10'}
+ character-entities-html4@2.1.0:
+ resolution: {integrity: sha512-1v7fgQRj6hnSwFpq1Eu0ynr/CDEw0rXo2B61qXrLNdHZmPKgb7fqS1a2JwF0rISo9q77jDI8VMEHoApn8qDoZA==}
+
+ character-entities-legacy@1.1.4:
+ resolution: {integrity: sha512-3Xnr+7ZFS1uxeiUDvV02wQ+QDbc55o97tIV5zHScSPJpcLm/r0DFPcoY3tYRp+VZukxuMeKgXYmsXQHO05zQeA==}
+
+ character-entities-legacy@3.0.0:
+ resolution: {integrity: sha512-RpPp0asT/6ufRm//AJVwpViZbGM/MkjQFxJccQRHmISF/22NBtsHqAWmL+/pmkPWoIUJdWyeVleTl1wydHATVQ==}
+
+ character-entities@1.2.4:
+ resolution: {integrity: sha512-iBMyeEHxfVnIakwOuDXpVkc54HijNgCyQB2w0VfGQThle6NXn50zU6V/u+LDhxHcDUPojn6Kpga3PTAD8W1bQw==}
+
+ character-entities@2.0.2:
+ resolution: {integrity: sha512-shx7oQ0Awen/BRIdkjkvz54PnEEI/EjwXDSIZp86/KKdbafHh1Df/RYGBhn4hbe2+uKC9FnT5UCEdyPz3ai9hQ==}
+
+ character-reference-invalid@1.1.4:
+ resolution: {integrity: sha512-mKKUkUbhPpQlCOfIuZkvSEgktjPFIsZKRRbC6KWVEMvlzblj3i3asQv5ODsrwt0N3pHAEvjP8KTQPHkp0+6jOg==}
+
+ character-reference-invalid@2.0.1:
+ resolution: {integrity: sha512-iBZ4F4wRbyORVsu0jPV7gXkOsGYjGHPmAyv+HiHG8gi5PtC9KI2j1+v8/tlibRvjoWX027ypmG/n0HtO5t7unw==}
+
chardet@0.7.0:
resolution: {integrity: sha512-mT8iDcrh03qDGRRmoA2hmBJnxpllMR+0/0qlzjqZES6NdiWDcZkCNAk4rPFZ9Q85r27unkiNNg8ZOiwZXBHwcA==}
@@ -2410,6 +2557,9 @@ packages:
code-block-writer@12.0.0:
resolution: {integrity: sha512-q4dMFMlXtKR3XNBHyMHt/3pwYNA69EDk00lloMOaaUMKPUXBw6lpXtbu3MMVG6/uOihGnRDOlkyqsONEUj60+w==}
+ collapse-white-space@2.1.0:
+ resolution: {integrity: sha512-loKTxY1zCOuG4j9f6EPnuyyYkf58RnhhWTvRoZEokgB+WbdXehfjFviyOVYkqzEWz1Q5kRiZdBYS5SwxbQYwzw==}
+
color-convert@2.0.1:
resolution: {integrity: sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==}
engines: {node: '>=7.0.0'}
@@ -2424,6 +2574,12 @@ packages:
resolution: {integrity: sha512-1rXeuUUiGGrykh+CeBdu5Ie7OJwinCgQY0bc7GCRxy5xVHy+moaqkpL/jqQq0MtQOeYcrqEz4abc5f0KtU7W4A==}
engines: {node: '>=12.5.0'}
+ comma-separated-tokens@1.0.8:
+ resolution: {integrity: sha512-GHuDRO12Sypu2cV70d1dkA2EUmXHgntrzbpvOB+Qy+49ypNfGgFQIC2fhhXbnyrJRynDCAARsT7Ou0M6hirpfw==}
+
+ comma-separated-tokens@2.0.3:
+ resolution: {integrity: sha512-Fu4hJdvzeylCfQPp9SGWidpzrMs7tTrlu6Vb8XGaRGck8QSNZJJp538Wrb60Lax4fPwR64ViY468OIUTbRlGZg==}
+
commander@2.20.3:
resolution: {integrity: sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==}
@@ -2483,6 +2639,9 @@ packages:
supports-color:
optional: true
+ decode-named-character-reference@1.0.2:
+ resolution: {integrity: sha512-O8x12RzrUF8xyVcY0KJowWsmaJxQbmy0/EtnNtHRpsOcT7dFk5W598coHqBVpmWo1oQQfsCqfCmkZN5DJrZVdg==}
+
deep-eql@5.0.2:
resolution: {integrity: sha512-h5k/5U50IJJFpzfL6nO9jaaumfjO/f2NjK/oYB2Djzm4p9L+3T9qWpZqZ2hAbLPuuYq9wrU08WQyBTL5GbPk5Q==}
engines: {node: '>=6'}
@@ -2498,6 +2657,10 @@ packages:
resolution: {integrity: sha512-8QmQKqEASLd5nx0U1B1okLElbUuuttJ/AnYmRXbbbGDWh6uS208EjD4Xqq/I9wK7u0v6O08XhTWnt5XtEbR6Dg==}
engines: {node: '>= 0.4'}
+ dequal@2.0.3:
+ resolution: {integrity: sha512-0je+qPKHEMohvfRTCEo3CrPG6cAzAYgmzKyxRiYSSDkS6eGJdyVJm7WaYA5ECaAD9wLB2T4EEeymA5aFVcYXCA==}
+ engines: {node: '>=6'}
+
detect-indent@6.1.0:
resolution: {integrity: sha512-reYkTUJAZb9gUuZ2RvVCNhVHdg62RHnJ7WJl8ftMi4diZ6NWlciOzQN88pUhSELEwflJht4oQDv0F0BMlwaYtA==}
engines: {node: '>=8'}
@@ -2506,6 +2669,9 @@ packages:
resolution: {integrity: sha512-bwy0MGW55bG41VqxxypOsdSdGqLwXPI/focwgTYCFMbdUiBAxLg9CFzG08sz2aqzknwiX7Hkl0bQENjg8iLByw==}
engines: {node: '>=8'}
+ devlop@1.1.0:
+ resolution: {integrity: sha512-RWmIqhcFf1lRYBvNmr7qTNuyCt/7/ns2jbpp1+PalgE/rDQcBT0fioSMUpJ93irlUhC5hrg4cYqe6U+0ImW0rA==}
+
dir-glob@3.0.1:
resolution: {integrity: sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==}
engines: {node: '>=8'}
@@ -2579,6 +2745,12 @@ packages:
resolution: {integrity: sha512-w+5mJ3GuFL+NjVtJlvydShqE1eN3h3PbI7/5LAsYJP/2qtuMXjfL2LpHSRqo4b4eSF5K/DH1JXKUAHSB2UW50g==}
engines: {node: '>= 0.4'}
+ esast-util-from-estree@2.0.0:
+ resolution: {integrity: sha512-4CyanoAudUSBAn5K13H4JhsMH6L9ZP7XbLVe/dKybkxMO7eDyLsT8UHl9TRNrU2Gr9nz+FovfSIjuXWJ81uVwQ==}
+
+ esast-util-from-js@2.0.1:
+ resolution: {integrity: sha512-8Ja+rNJ0Lt56Pcf3TAmpBZjmx8ZcK5Ts4cAzIOjsjevg9oSXJnl6SUQ2EevU8tv3h6ZLWmoKL5H4fgWvdvfETw==}
+
esbuild@0.18.20:
resolution: {integrity: sha512-ceqxoedUrcayh7Y7ZX6NdbbDzGROiyVBgC4PriJThBKSVPWnnFHZAkfI1lJT8QFkOwH4qOS2SJkS4wvpGl8BpA==}
engines: {node: '>=12'}
@@ -2699,6 +2871,24 @@ packages:
resolution: {integrity: sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==}
engines: {node: '>=4.0'}
+ estree-util-attach-comments@3.0.0:
+ resolution: {integrity: sha512-cKUwm/HUcTDsYh/9FgnuFqpfquUbwIqwKM26BVCGDPVgvaCl/nDCCjUfiLlx6lsEZ3Z4RFxNbOQ60pkaEwFxGw==}
+
+ estree-util-build-jsx@3.0.1:
+ resolution: {integrity: sha512-8U5eiL6BTrPxp/CHbs2yMgP8ftMhR5ww1eIKoWRMlqvltHF8fZn5LRDvTKuxD3DUn+shRbLGqXemcP51oFCsGQ==}
+
+ estree-util-is-identifier-name@3.0.0:
+ resolution: {integrity: sha512-hFtqIDZTIUZ9BXLb8y4pYGyk6+wekIivNVTcmvk8NoOh+VeRn5y6cEHzbURrWbfp1fIqdVipilzj+lfaadNZmg==}
+
+ estree-util-scope@1.0.0:
+ resolution: {integrity: sha512-2CAASclonf+JFWBNJPndcOpA8EMJwa0Q8LUFJEKqXLW6+qBvbFZuF5gItbQOs/umBUkjviCSDCbBwU2cXbmrhQ==}
+
+ estree-util-to-js@2.0.0:
+ resolution: {integrity: sha512-WDF+xj5rRWmD5tj6bIqRi6CkLIXbbNQUcxQHzGysQzvHmdYG2G7p/Tf0J0gpxGgkeMZNTIjT/AoSvC9Xehcgdg==}
+
+ estree-util-visit@2.0.0:
+ resolution: {integrity: sha512-m5KgiH85xAhhW8Wta0vShLcUvOsh3LLPI2YVwcbio1l7E09NTLL1EyMZFM1OyWowoH0skScNbhOPl4kcBgzTww==}
+
estree-walker@2.0.2:
resolution: {integrity: sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==}
@@ -2721,6 +2911,9 @@ packages:
resolution: {integrity: sha512-bFi65yM+xZgk+u/KRIpekdSYkTB5W1pEf0Lt8Q8Msh7b+eQ7LXVtIB1Bkm4fvclDEL1b2CZkMhv2mOeF8tMdkA==}
engines: {node: '>=12.0.0'}
+ extend@3.0.2:
+ resolution: {integrity: sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==}
+
extendable-error@0.1.7:
resolution: {integrity: sha512-UOiS2in6/Q0FK0R0q6UY9vYpQ21mr/Qn1KOnte7vsACuNJf514WvCCUHSRCPcgjPT2bAhNIJdlE6bVap1GKmeg==}
@@ -2750,6 +2943,9 @@ packages:
fastq@1.18.0:
resolution: {integrity: sha512-QKHXPW0hD8g4UET03SdOdunzSouc9N4AuHdsX8XNcTsuz+yYFILVNIX4l9yHABMhiEI9Db0JTTIpu0wB+Y1QQw==}
+ fault@1.0.4:
+ resolution: {integrity: sha512-CJ0HCB5tL5fYTEA7ToAq5+kTwd++Borf1/bifxd9iT70QcXr4MRrO3Llf8Ifs70q+SJcGHFtnIE/Nw6giCtECA==}
+
file-entry-cache@8.0.0:
resolution: {integrity: sha512-XXTUwCvisa5oacNGRP9SfNtYBNAMi+RPwBFmblZEF7N7swHYQS6/Zfk7SRwx4D5j3CH211YNRco1DEMNVfZCnQ==}
engines: {node: '>=16.0.0'}
@@ -2791,6 +2987,10 @@ packages:
resolution: {integrity: sha512-Ld2g8rrAyMYFXBhEqMz8ZAHBi4J4uS1i/CxGMDnjyFWddMXLVcDp051DZfu+t7+ab7Wv6SMqpWmyFIj5UbfFvg==}
engines: {node: '>=14'}
+ format@0.2.2:
+ resolution: {integrity: sha512-wzsgA6WOq+09wrU1tsJ09udeR/YZRaeArL9e1wPbFg3GG2yDnC2ldKpxs4xunpFF9DgqCqOIra3bc1HWrJ37Ww==}
+ engines: {node: '>=0.4.x'}
+
fs-extra@7.0.1:
resolution: {integrity: sha512-YJDaCJZEnBmcbw13fvdAM9AwNOJwOzrE4pqMqBq5nFiEqXUqHwlK4B+3pUw6JNvfSPtX05xFHtYy/1ni01eGCw==}
engines: {node: '>=6 <7 || >=8'}
@@ -2898,10 +3098,31 @@ packages:
resolution: {integrity: sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==}
engines: {node: '>= 0.4'}
+ hast-util-parse-selector@2.2.5:
+ resolution: {integrity: sha512-7j6mrk/qqkSehsM92wQjdIgWM2/BW61u/53G6xmC8i1OmEdKLHbk419QKQUjz6LglWsfqoiHmyMRkP1BGjecNQ==}
+
+ hast-util-to-estree@3.1.1:
+ resolution: {integrity: sha512-IWtwwmPskfSmma9RpzCappDUitC8t5jhAynHhc1m2+5trOgsrp7txscUSavc5Ic8PATyAjfrCK1wgtxh2cICVQ==}
+
+ hast-util-to-jsx-runtime@2.3.2:
+ resolution: {integrity: sha512-1ngXYb+V9UT5h+PxNRa1O1FYguZK/XL+gkeqvp7EdHlB9oHUG0eYRo/vY5inBdcqo3RkPMC58/H94HvkbfGdyg==}
+
+ hast-util-whitespace@3.0.0:
+ resolution: {integrity: sha512-88JUN06ipLwsnv+dVn+OIYOvAuvBMy/Qoi6O7mQHxdPXpjy+Cd6xRkWwux7DKO+4sYILtLBRIKgsdpS2gQc7qw==}
+
+ hastscript@6.0.0:
+ resolution: {integrity: sha512-nDM6bvd7lIqDUiYEiu5Sl/+6ReP0BMk/2f4U/Rooccxkj0P5nm+acM5PrGJ/t5I8qPGiqZSE6hVAwZEdZIvP4w==}
+
he@1.2.0:
resolution: {integrity: sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==}
hasBin: true
+ highlight.js@10.7.3:
+ resolution: {integrity: sha512-tzcUFauisWKNHaRkN4Wjl/ZA07gENAjFl3J/c480dprkGTg5EQstgaNFqBfUqCq54kZRIEcreTsAgF/m2quD7A==}
+
+ highlightjs-vue@1.0.0:
+ resolution: {integrity: sha512-PDEfEF102G23vHmPhLyPboFCD+BkMGu+GuJe2d9/eH4FsCwvgBpnc9n0pGE+ffKdph38s6foEZiEjdgHdzp+IA==}
+
hoist-non-react-statics@3.3.2:
resolution: {integrity: sha512-/gGivxi8JPKWNm/W0jSmzcMPpfpPLc3dY/6GxhX2hQ9iGj3aDfklV4ET7NjKpSinLpJ5vafa9iiGIEZg10SfBw==}
@@ -2931,10 +3152,25 @@ packages:
resolution: {integrity: sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==}
engines: {node: '>=0.8.19'}
+ inline-style-parser@0.2.4:
+ resolution: {integrity: sha512-0aO8FkhNZlj/ZIbNi7Lxxr12obT7cL1moPfE4tg1LkX7LlLfC6DeX4l2ZEud1ukP9jNQyNnfzQVqwbwmAATY4Q==}
+
internal-slot@1.1.0:
resolution: {integrity: sha512-4gd7VpWNQNB4UKKCFFVcp1AVv+FMOgs9NKzjHKusc8jTMhd5eL1NqQqOpE0KzMds804/yHlglp3uxgluOqAPLw==}
engines: {node: '>= 0.4'}
+ is-alphabetical@1.0.4:
+ resolution: {integrity: sha512-DwzsA04LQ10FHTZuL0/grVDk4rFoVH1pjAToYwBrHSxcrBIGQuXrQMtD5U1b0U2XVgKZCTLLP8u2Qxqhy3l2Vg==}
+
+ is-alphabetical@2.0.1:
+ resolution: {integrity: sha512-FWyyY60MeTNyeSRpkM2Iry0G9hpr7/9kD40mD/cGQEuilcZYS4okz8SN2Q6rLCJ8gbCt6fN+rC+6tMGS99LaxQ==}
+
+ is-alphanumerical@1.0.4:
+ resolution: {integrity: sha512-UzoZUr+XfVz3t3v4KyGEniVL9BDRoQtY7tOyrRybkVNjDFWyo1yhXNGrrBTQxp3ib9BLAWs7k2YKBQsFRkZG9A==}
+
+ is-alphanumerical@2.0.1:
+ resolution: {integrity: sha512-hmbYhX/9MUMF5uh7tOXyK/n0ZvWpad5caBA17GsC6vyuCqaWliRG5K1qS9inmUhEMaOBIW7/whAnSwveW/LtZw==}
+
is-array-buffer@3.0.5:
resolution: {integrity: sha512-DDfANUiiG2wC1qawP66qlTugJeL5HyzMpfr8lLK+jMQirGzNod0B12cFB/9q838Ru27sBwfw78/rdoU7RERz6A==}
engines: {node: '>= 0.4'}
@@ -2973,6 +3209,12 @@ packages:
resolution: {integrity: sha512-PwwhEakHVKTdRNVOw+/Gyh0+MzlCl4R6qKvkhuvLtPMggI1WAHt9sOwZxQLSGpUaDnrdyDsomoRgNnCfKNSXXg==}
engines: {node: '>= 0.4'}
+ is-decimal@1.0.4:
+ resolution: {integrity: sha512-RGdriMmQQvZ2aqaQq3awNA6dCGtKpiDFcOzrTWrDAT2MiWrKQVPmxLGHl7Y2nNu6led0kEyoX0enY0qXYsv9zw==}
+
+ is-decimal@2.0.1:
+ resolution: {integrity: sha512-AAB9hiomQs5DXWcRB1rqsxGUstbRroFOPPVAomNk/3XHR5JyEZChOyTWe2oayKnsSsr/kcGqF+z6yuH6HHpN0A==}
+
is-extglob@2.1.1:
resolution: {integrity: sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==}
engines: {node: '>=0.10.0'}
@@ -2993,6 +3235,12 @@ packages:
resolution: {integrity: sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==}
engines: {node: '>=0.10.0'}
+ is-hexadecimal@1.0.4:
+ resolution: {integrity: sha512-gyPJuv83bHMpocVYoqof5VDiZveEoGoFL8m3BXNb2VW8Xs+rz9kqO8LOQ5DH6EsuvilT1ApazU0pyl+ytbPtlw==}
+
+ is-hexadecimal@2.0.1:
+ resolution: {integrity: sha512-DgZQp241c8oO6cA1SbTEWiXeoxV42vlcJxgH+B3hi1AiqqKruZR3ZGF8In3fj4+/y/7rHvlOZLZtgJ/4ttYGZg==}
+
is-map@2.0.3:
resolution: {integrity: sha512-1Qed0/Hr2m+YqxnM09CjA2d/i6YZNfF6R2oRAOj36eUdS6qIV/huPJNSEpKbupewFs+ZsJlxsjjPbc0/afW6Lw==}
engines: {node: '>= 0.4'}
@@ -3005,6 +3253,10 @@ packages:
resolution: {integrity: sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==}
engines: {node: '>=0.12.0'}
+ is-plain-obj@4.1.0:
+ resolution: {integrity: sha512-+Pgi+vMuUNkJyExiMBt5IlFoMyKnr5zhJ4Uspz58WOhBF5QoIZkFyNHIbBAtHwzVAgk5RtndVNsDRN61/mmDqg==}
+ engines: {node: '>=12'}
+
is-regex@1.2.1:
resolution: {integrity: sha512-MjYsKHO5O7mCsmRGxWcLWheFqN9DJ/2TmngvjKXihe6efViPqc274+Fx/4fYj/r03+ESvBdTXK0V6tA3rgez1g==}
engines: {node: '>= 0.4'}
@@ -3178,6 +3430,9 @@ packages:
lodash@4.17.21:
resolution: {integrity: sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==}
+ longest-streak@3.1.0:
+ resolution: {integrity: sha512-9Ri+o0JYgehTaVBBDoMqIl8GXtbWg711O3srftcHhZ0dqnETqLaoIK0x17fUw9rFSlK/0NlsKe0Ahhyl5pXE2g==}
+
loose-envify@1.4.0:
resolution: {integrity: sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==}
hasBin: true
@@ -3185,6 +3440,9 @@ packages:
loupe@3.1.2:
resolution: {integrity: sha512-23I4pFZHmAemUnz8WZXbYRSKYj801VDaNv9ETuMh7IrMc7VuVVSo+Z9iLE3ni30+U48iDWfi30d3twAXBYmnCg==}
+ lowlight@1.20.0:
+ resolution: {integrity: sha512-8Ktj+prEb1RoCPkEOrPMYUN/nCggB7qAWe3a7OpMjWQkh3l2RD5wKRQ+o8Q8YuI9RG/xs95waaI/E6ym/7NsTw==}
+
lru-cache@10.4.3:
resolution: {integrity: sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ==}
@@ -3205,10 +3463,41 @@ packages:
resolution: {integrity: sha512-hXdUTZYIVOt1Ex//jAQi+wTZZpUpwBj/0QsOzqegb3rGMMeJiSEu5xLHnYfBrRV4RH2+OCSOO95Is/7x1WJ4bw==}
engines: {node: '>=10'}
+ markdown-extensions@2.0.0:
+ resolution: {integrity: sha512-o5vL7aDWatOTX8LzaS1WMoaoxIiLRQJuIKKe2wAw6IeULDHaqbiqiggmx+pKvZDb1Sj+pE46Sn1T7lCqfFtg1Q==}
+ engines: {node: '>=16'}
+
math-intrinsics@1.1.0:
resolution: {integrity: sha512-/IXtbwEk5HTPyEwyKX6hGkYXxM9nbj64B+ilVJnC/R6B0pH5G4V3b0pVbL7DBj4tkhBAppbQUlf6F6Xl9LHu1g==}
engines: {node: '>= 0.4'}
+ mdast-util-from-markdown@2.0.2:
+ resolution: {integrity: sha512-uZhTV/8NBuw0WHkPTrCqDOl0zVe1BIng5ZtHoDk49ME1qqcjYmmLmOf0gELgcRMxN4w2iuIeVso5/6QymSrgmA==}
+
+ mdast-util-mdx-expression@2.0.1:
+ resolution: {integrity: sha512-J6f+9hUp+ldTZqKRSg7Vw5V6MqjATc+3E4gf3CFNcuZNWD8XdyI6zQ8GqH7f8169MM6P7hMBRDVGnn7oHB9kXQ==}
+
+ mdast-util-mdx-jsx@3.2.0:
+ resolution: {integrity: sha512-lj/z8v0r6ZtsN/cGNNtemmmfoLAFZnjMbNyLzBafjzikOM+glrjNHPlf6lQDOTccj9n5b0PPihEBbhneMyGs1Q==}
+
+ mdast-util-mdx@3.0.0:
+ resolution: {integrity: sha512-JfbYLAW7XnYTTbUsmpu0kdBUVe+yKVJZBItEjwyYJiDJuZ9w4eeaqks4HQO+R7objWgS2ymV60GYpI14Ug554w==}
+
+ mdast-util-mdxjs-esm@2.0.1:
+ resolution: {integrity: sha512-EcmOpxsZ96CvlP03NghtH1EsLtr0n9Tm4lPUJUBccV9RwUOneqSycg19n5HGzCf+10LozMRSObtVr3ee1WoHtg==}
+
+ mdast-util-phrasing@4.1.0:
+ resolution: {integrity: sha512-TqICwyvJJpBwvGAMZjj4J2n0X8QWp21b9l0o7eXyVJ25YNWYbJDVIyD1bZXE6WtV6RmKJVYmQAKWa0zWOABz2w==}
+
+ mdast-util-to-hast@13.2.0:
+ resolution: {integrity: sha512-QGYKEuUsYT9ykKBCMOEDLsU5JRObWQusAolFMeko/tYPufNkRffBAQjIE+99jbA87xv6FgmjLtwjh9wBWajwAA==}
+
+ mdast-util-to-markdown@2.1.2:
+ resolution: {integrity: sha512-xj68wMTvGXVOKonmog6LwyJKrYXZPvlwabaryTjLh9LuvovB/KAH+kvi8Gjj+7rJjsFi23nkUxRQv1KqSroMqA==}
+
+ mdast-util-to-string@4.0.0:
+ resolution: {integrity: sha512-0H44vDimn51F0YwvxSJSm0eCDOJTRlmN0R1yBh4HLj9wiV1Dn0QoXGbvFAWj2hSItVTlCmBF1hqKlIyUBVFLPg==}
+
merge-stream@2.0.0:
resolution: {integrity: sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==}
@@ -3216,6 +3505,90 @@ packages:
resolution: {integrity: sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==}
engines: {node: '>= 8'}
+ micromark-core-commonmark@2.0.2:
+ resolution: {integrity: sha512-FKjQKbxd1cibWMM1P9N+H8TwlgGgSkWZMmfuVucLCHaYqeSvJ0hFeHsIa65pA2nYbes0f8LDHPMrd9X7Ujxg9w==}
+
+ micromark-extension-mdx-expression@3.0.0:
+ resolution: {integrity: sha512-sI0nwhUDz97xyzqJAbHQhp5TfaxEvZZZ2JDqUo+7NvyIYG6BZ5CPPqj2ogUoPJlmXHBnyZUzISg9+oUmU6tUjQ==}
+
+ micromark-extension-mdx-jsx@3.0.1:
+ resolution: {integrity: sha512-vNuFb9czP8QCtAQcEJn0UJQJZA8Dk6DXKBqx+bg/w0WGuSxDxNr7hErW89tHUY31dUW4NqEOWwmEUNhjTFmHkg==}
+
+ micromark-extension-mdx-md@2.0.0:
+ resolution: {integrity: sha512-EpAiszsB3blw4Rpba7xTOUptcFeBFi+6PY8VnJ2hhimH+vCQDirWgsMpz7w1XcZE7LVrSAUGb9VJpG9ghlYvYQ==}
+
+ micromark-extension-mdxjs-esm@3.0.0:
+ resolution: {integrity: sha512-DJFl4ZqkErRpq/dAPyeWp15tGrcrrJho1hKK5uBS70BCtfrIFg81sqcTVu3Ta+KD1Tk5vAtBNElWxtAa+m8K9A==}
+
+ micromark-extension-mdxjs@3.0.0:
+ resolution: {integrity: sha512-A873fJfhnJ2siZyUrJ31l34Uqwy4xIFmvPY1oj+Ean5PHcPBYzEsvqvWGaWcfEIr11O5Dlw3p2y0tZWpKHDejQ==}
+
+ micromark-factory-destination@2.0.1:
+ resolution: {integrity: sha512-Xe6rDdJlkmbFRExpTOmRj9N3MaWmbAgdpSrBQvCFqhezUn4AHqJHbaEnfbVYYiexVSs//tqOdY/DxhjdCiJnIA==}
+
+ micromark-factory-label@2.0.1:
+ resolution: {integrity: sha512-VFMekyQExqIW7xIChcXn4ok29YE3rnuyveW3wZQWWqF4Nv9Wk5rgJ99KzPvHjkmPXF93FXIbBp6YdW3t71/7Vg==}
+
+ micromark-factory-mdx-expression@2.0.2:
+ resolution: {integrity: sha512-5E5I2pFzJyg2CtemqAbcyCktpHXuJbABnsb32wX2U8IQKhhVFBqkcZR5LRm1WVoFqa4kTueZK4abep7wdo9nrw==}
+
+ micromark-factory-space@2.0.1:
+ resolution: {integrity: sha512-zRkxjtBxxLd2Sc0d+fbnEunsTj46SWXgXciZmHq0kDYGnck/ZSGj9/wULTV95uoeYiK5hRXP2mJ98Uo4cq/LQg==}
+
+ micromark-factory-title@2.0.1:
+ resolution: {integrity: sha512-5bZ+3CjhAd9eChYTHsjy6TGxpOFSKgKKJPJxr293jTbfry2KDoWkhBb6TcPVB4NmzaPhMs1Frm9AZH7OD4Cjzw==}
+
+ micromark-factory-whitespace@2.0.1:
+ resolution: {integrity: sha512-Ob0nuZ3PKt/n0hORHyvoD9uZhr+Za8sFoP+OnMcnWK5lngSzALgQYKMr9RJVOWLqQYuyn6ulqGWSXdwf6F80lQ==}
+
+ micromark-util-character@2.1.1:
+ resolution: {integrity: sha512-wv8tdUTJ3thSFFFJKtpYKOYiGP2+v96Hvk4Tu8KpCAsTMs6yi+nVmGh1syvSCsaxz45J6Jbw+9DD6g97+NV67Q==}
+
+ micromark-util-chunked@2.0.1:
+ resolution: {integrity: sha512-QUNFEOPELfmvv+4xiNg2sRYeS/P84pTW0TCgP5zc9FpXetHY0ab7SxKyAQCNCc1eK0459uoLI1y5oO5Vc1dbhA==}
+
+ micromark-util-classify-character@2.0.1:
+ resolution: {integrity: sha512-K0kHzM6afW/MbeWYWLjoHQv1sgg2Q9EccHEDzSkxiP/EaagNzCm7T/WMKZ3rjMbvIpvBiZgwR3dKMygtA4mG1Q==}
+
+ micromark-util-combine-extensions@2.0.1:
+ resolution: {integrity: sha512-OnAnH8Ujmy59JcyZw8JSbK9cGpdVY44NKgSM7E9Eh7DiLS2E9RNQf0dONaGDzEG9yjEl5hcqeIsj4hfRkLH/Bg==}
+
+ micromark-util-decode-numeric-character-reference@2.0.2:
+ resolution: {integrity: sha512-ccUbYk6CwVdkmCQMyr64dXz42EfHGkPQlBj5p7YVGzq8I7CtjXZJrubAYezf7Rp+bjPseiROqe7G6foFd+lEuw==}
+
+ micromark-util-decode-string@2.0.1:
+ resolution: {integrity: sha512-nDV/77Fj6eH1ynwscYTOsbK7rR//Uj0bZXBwJZRfaLEJ1iGBR6kIfNmlNqaqJf649EP0F3NWNdeJi03elllNUQ==}
+
+ micromark-util-encode@2.0.1:
+ resolution: {integrity: sha512-c3cVx2y4KqUnwopcO9b/SCdo2O67LwJJ/UyqGfbigahfegL9myoEFoDYZgkT7f36T0bLrM9hZTAaAyH+PCAXjw==}
+
+ micromark-util-events-to-acorn@2.0.2:
+ resolution: {integrity: sha512-Fk+xmBrOv9QZnEDguL9OI9/NQQp6Hz4FuQ4YmCb/5V7+9eAh1s6AYSvL20kHkD67YIg7EpE54TiSlcsf3vyZgA==}
+
+ micromark-util-html-tag-name@2.0.1:
+ resolution: {integrity: sha512-2cNEiYDhCWKI+Gs9T0Tiysk136SnR13hhO8yW6BGNyhOC4qYFnwF1nKfD3HFAIXA5c45RrIG1ub11GiXeYd1xA==}
+
+ micromark-util-normalize-identifier@2.0.1:
+ resolution: {integrity: sha512-sxPqmo70LyARJs0w2UclACPUUEqltCkJ6PhKdMIDuJ3gSf/Q+/GIe3WKl0Ijb/GyH9lOpUkRAO2wp0GVkLvS9Q==}
+
+ micromark-util-resolve-all@2.0.1:
+ resolution: {integrity: sha512-VdQyxFWFT2/FGJgwQnJYbe1jjQoNTS4RjglmSjTUlpUMa95Htx9NHeYW4rGDJzbjvCsl9eLjMQwGeElsqmzcHg==}
+
+ micromark-util-sanitize-uri@2.0.1:
+ resolution: {integrity: sha512-9N9IomZ/YuGGZZmQec1MbgxtlgougxTodVwDzzEouPKo3qFWvymFHWcnDi2vzV1ff6kas9ucW+o3yzJK9YB1AQ==}
+
+ micromark-util-subtokenize@2.0.3:
+ resolution: {integrity: sha512-VXJJuNxYWSoYL6AJ6OQECCFGhIU2GGHMw8tahogePBrjkG8aCCas3ibkp7RnVOSTClg2is05/R7maAhF1XyQMg==}
+
+ micromark-util-symbol@2.0.1:
+ resolution: {integrity: sha512-vs5t8Apaud9N28kgCrRUdEed4UJ+wWNvicHLPxCa9ENlYuAY31M0ETy5y1vA33YoNPDFTghEbnh6efaE8h4x0Q==}
+
+ micromark-util-types@2.0.1:
+ resolution: {integrity: sha512-534m2WhVTddrcKVepwmVEVnUAmtrx9bfIjNoQHRqfnvdaHQiFytEhJoTgpWJvDEXCO5gLTQh3wYC1PgOJA4NSQ==}
+
+ micromark@4.0.1:
+ resolution: {integrity: sha512-eBPdkcoCNvYcxQOAKAlceo5SNdzZWfF+FcSupREAzdAh9rRmE239CEQAiTwIgblwnoM8zzj35sZ5ZwvSEOF6Kw==}
+
micromatch@4.0.8:
resolution: {integrity: sha512-PXwfBhYu0hBCPw8Dn0E+WDYb7af3dSLVWKi3HGv84IdF4TyFoC0ysxFd0Goxw7nSv4T/PzEJQxsYsEiFCKo2BA==}
engines: {node: '>=8.6'}
@@ -3394,6 +3767,12 @@ packages:
resolution: {integrity: sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==}
engines: {node: '>=6'}
+ parse-entities@2.0.0:
+ resolution: {integrity: sha512-kkywGpCcRYhqQIchaWqZ875wzpS/bMKhz5HnN3p7wveJTkTtyAB/AlnS0f8DFSqYW1T82t6yEAkEcB+A1I3MbQ==}
+
+ parse-entities@4.0.2:
+ resolution: {integrity: sha512-GG2AQYWoLgL877gQIKeRPGO1xF9+eG1ujIb5soS5gPvLQ1y2o8FL90w2QWNdf9I361Mpp7726c+lj3U0qK1uGw==}
+
parse-json@5.2.0:
resolution: {integrity: sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==}
engines: {node: '>=8'}
@@ -3489,9 +3868,23 @@ packages:
engines: {node: '>=14'}
hasBin: true
+ prismjs@1.27.0:
+ resolution: {integrity: sha512-t13BGPUlFDR7wRB5kQDG4jjl7XeuH6jbJGt11JHPL96qwsEHNX2+68tFXqc1/k+/jALsbSWJKUOT/hcYAZ5LkA==}
+ engines: {node: '>=6'}
+
+ prismjs@1.29.0:
+ resolution: {integrity: sha512-Kx/1w86q/epKcmte75LNrEoT+lX8pBpavuAbvJWRXar7Hz8jrtF+e3vY751p0R8H9HdArwaCTNDDzHg/ScJK1Q==}
+ engines: {node: '>=6'}
+
prop-types@15.8.1:
resolution: {integrity: sha512-oj87CgZICdulUohogVAR7AjlC0327U4el4L6eAvOqCeudMDVU0NThNaV+b9Df4dXgSP1gXMTnPdhfe/2qDH5cg==}
+ property-information@5.6.0:
+ resolution: {integrity: sha512-YUHSPk+A30YPv+0Qf8i9Mbfe/C0hdPXk1s1jPVToV8pk8BQtpw10ct89Eo7OWkutrwqvT0eicAxlOg3dOAu8JA==}
+
+ property-information@6.5.0:
+ resolution: {integrity: sha512-PgTgs/BlvHxOu8QuEN7wi5A0OmXaBcHpmCSTehcs6Uuu9IkDIEo13Hy7n898RHfrQ49vKCoGeWZSaAK01nwVig==}
+
proxy-compare@3.0.1:
resolution: {integrity: sha512-V9plBAt3qjMlS1+nC8771KNf6oJ12gExvaxnNzN/9yVRLdTv/lc+oJlnSzrdYDAvBfTStPCoiaCOTmTs0adv7Q==}
@@ -3525,6 +3918,11 @@ packages:
resolution: {integrity: sha512-jCvmsr+1IUSMUyzOkRcvnVbX3ZYC6g9TDrDbFuFmRDq7PD4yaGbLKNQL6k2jnArV8hjYxh7hVhAZB6s9HDGpZA==}
engines: {node: '>=0.10.0'}
+ react-syntax-highlighter@15.6.1:
+ resolution: {integrity: sha512-OqJ2/vL7lEeV5zTJyG7kmARppUjiB9h9udl4qHQjjgEos66z00Ia0OckwYfRxCSFrW8RJIBnsBwQsHZbVPspqg==}
+ peerDependencies:
+ react: '>= 0.14.0'
+
react@19.0.0:
resolution: {integrity: sha512-V8AVnmPIICiWpGfm6GLzCR/W5FXLchHop40W4nXBmdlEceh16rCN8O8LNWm5bh5XUX91fh7KpA+W0TgMKmgTpQ==}
engines: {node: '>=0.10.0'}
@@ -3533,10 +3931,25 @@ packages:
resolution: {integrity: sha512-VIMnQi/Z4HT2Fxuwg5KrY174U1VdUIASQVWXXyqtNRtxSr9IYkn1rsI6Tb6HsrHCmB7gVpNwX6JxPTHcH6IoTA==}
engines: {node: '>=6'}
+ recma-build-jsx@1.0.0:
+ resolution: {integrity: sha512-8GtdyqaBcDfva+GUKDr3nev3VpKAhup1+RvkMvUxURHpW7QyIvk9F5wz7Vzo06CEMSilw6uArgRqhpiUcWp8ew==}
+
+ recma-jsx@1.0.0:
+ resolution: {integrity: sha512-5vwkv65qWwYxg+Atz95acp8DMu1JDSqdGkA2Of1j6rCreyFUE/gp15fC8MnGEuG1W68UKjM6x6+YTWIh7hZM/Q==}
+
+ recma-parse@1.0.0:
+ resolution: {integrity: sha512-OYLsIGBB5Y5wjnSnQW6t3Xg7q3fQ7FWbw/vcXtORTnyaSFscOtABg+7Pnz6YZ6c27fG1/aN8CjfwoUEUIdwqWQ==}
+
+ recma-stringify@1.0.0:
+ resolution: {integrity: sha512-cjwII1MdIIVloKvC9ErQ+OgAtwHBmcZ0Bg4ciz78FtbT8In39aAYbaA7zvxQ61xVMSPE8WxhLwLbhif4Js2C+g==}
+
reflect.getprototypeof@1.0.10:
resolution: {integrity: sha512-00o4I+DVrefhv+nX0ulyi3biSHCPDe+yLv5o/p6d/UVlirijB8E16FtfwSAi4g3tcqrQ4lRAqQSoFEZJehYEcw==}
engines: {node: '>= 0.4'}
+ refractor@3.6.0:
+ resolution: {integrity: sha512-MY9W41IOWxxk31o+YvFCNyNzdkc9M20NoZK5vq6jkv4I/uh2zkWcfudj0Q1fovjUQJrNewS9NMzeTtqPf+n5EA==}
+
regenerate-unicode-properties@10.2.0:
resolution: {integrity: sha512-DqHn3DwbmmPVzeKj9woBadqmXxLvQoQIwu7nopMc72ztvxVmVk2SBhSnx67zuye5TP+lJsb/TBQsjLKhnDf3MA==}
engines: {node: '>=4'}
@@ -3565,6 +3978,18 @@ packages:
resolution: {integrity: sha512-cnE+y8bz4NhMjISKbgeVJtqNbtf5QpjZP+Bslo+UqkIt9QPnX9q095eiRRASJG1/tz6dlNr6Z5NsBiWYokp6EQ==}
hasBin: true
+ rehype-recma@1.0.0:
+ resolution: {integrity: sha512-lqA4rGUf1JmacCNWWZx0Wv1dHqMwxzsDWYMTowuplHF3xH0N/MmrZ/G3BDZnzAkRmxDadujCjaKM2hqYdCBOGw==}
+
+ remark-mdx@3.1.0:
+ resolution: {integrity: sha512-Ngl/H3YXyBV9RcRNdlYsZujAmhsxwzxpDzpDEhFBVAGthS4GDgnctpDjgFl/ULx5UEDzqtW1cyBSNKqYYrqLBA==}
+
+ remark-parse@11.0.0:
+ resolution: {integrity: sha512-FCxlKLNGknS5ba/1lmpYijMUzX2esxW5xQqjWxw2eHFfS2MSdaHVINFmhjo+qN1WhZhNimq0dZATN9pH0IDrpA==}
+
+ remark-rehype@11.1.1:
+ resolution: {integrity: sha512-g/osARvjkBXb6Wo0XvAeXQohVta8i84ACbenPpoSsxTOQH/Ae0/RGP4WZgnMH5pMLpsj4FG7OHmcIcXxpza8eQ==}
+
require-from-string@2.0.2:
resolution: {integrity: sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==}
engines: {node: '>=0.10.0'}
@@ -3619,6 +4044,9 @@ packages:
safer-buffer@2.1.2:
resolution: {integrity: sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==}
+ sanitize.css@13.0.0:
+ resolution: {integrity: sha512-ZRwKbh/eQ6w9vmTjkuG0Ioi3HBwPFce0O+v//ve+aOq1oeCy7jMV2qzzAlpsNuqpqCBjjriM1lbtZbF/Q8jVyA==}
+
scheduler@0.25.0:
resolution: {integrity: sha512-xFVuu11jh+xcO7JOAGJNOXld8/TcEHK/4CituBUeUb5hqxJLj9YuemAEuvm9gQ/+pgXYfbQuqAkiYu+u7YEsNA==}
@@ -3716,6 +4144,16 @@ packages:
resolution: {integrity: sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==}
engines: {node: '>=0.10.0'}
+ source-map@0.7.4:
+ resolution: {integrity: sha512-l3BikUxvPOcn5E74dZiq5BGsTb5yEwhaTSzccU6t4sDOH8NWJCstKO5QT2CvtFoK6F0saL7p9xHAqHOlCPJygA==}
+ engines: {node: '>= 8'}
+
+ space-separated-tokens@1.1.5:
+ resolution: {integrity: sha512-q/JSVd1Lptzhf5bkYm4ob4iWPjx0KiRe3sRFBNrVqbJkFaBm5vbbowy1mymoPNLRa52+oadOhJ+K49wsSeSjTA==}
+
+ space-separated-tokens@2.0.2:
+ resolution: {integrity: sha512-PEGlAwrG8yXGXRjW32fGbg66JAlOAwbObuqVoJpv/mRgoWDQfgH1wDPvtzWyUSNAXBGSk8h755YDbbcEy3SH2Q==}
+
spawndamnit@3.0.1:
resolution: {integrity: sha512-MmnduQUuHCoFckZoWnXsTg7JaiLBJrKFj9UI2MbRPGaJeVpsLcVBu6P/IGZovziM/YBsellCmsprgNA+w0CzVg==}
@@ -3763,6 +4201,9 @@ packages:
resolution: {integrity: sha512-UXSH262CSZY1tfu3G3Secr6uGLCFVPMhIqHjlgCUtCCcgihYc/xKs9djMTMUOb2j1mVSeU8EU6NWc/iQKU6Gfg==}
engines: {node: '>= 0.4'}
+ stringify-entities@4.0.4:
+ resolution: {integrity: sha512-IwfBptatlO+QCJUo19AqvrPNqlVMpW9YEL2LIVY+Rpv2qsjCGxaDLNRgeGsQWJhfItebuJhsGSLjaBbNSQ+ieg==}
+
strip-ansi@6.0.1:
resolution: {integrity: sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==}
engines: {node: '>=8'}
@@ -3779,6 +4220,9 @@ packages:
resolution: {integrity: sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==}
engines: {node: '>=8'}
+ style-to-object@1.0.8:
+ resolution: {integrity: sha512-xT47I/Eo0rwJmaXC4oilDGDWLohVhR6o/xAQcPQN8q6QBuZVL8qMYL85kLmST5cPjAorwvqIA4qXTRQoYHaL6g==}
+
styled-jsx@5.1.6:
resolution: {integrity: sha512-qSVyDTeMotdvQYoHWLNGwRFJHC+i+ZvdBRYosOFgC+Wg1vx4frN2/RG/NA7SYqqvKNLf39P2LSRA2pu6n0XYZA==}
engines: {node: '>= 12.0.0'}
@@ -3873,6 +4317,12 @@ packages:
resolution: {integrity: sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==}
engines: {node: '>=8.0'}
+ trim-lines@3.0.1:
+ resolution: {integrity: sha512-kRj8B+YHZCc9kQYdWfJB2/oUl9rA99qbowYYBtr4ui4mZyAQ2JpvVBd/6U2YloATfqBhBTSMhTpgBHtU0Mf3Rg==}
+
+ trough@2.2.0:
+ resolution: {integrity: sha512-tmMpK00BjZiUyVyvrBK7knerNgmgvcV/KLVyuma/SC+TQN167GrMRciANTz09+k3zW8L8t60jWO1GpfkZdjTaw==}
+
ts-api-utils@2.0.0:
resolution: {integrity: sha512-xCt/TOAc+EOHS1XPnijD3/yzpH6qg2xppZO1YDqGoVsNXfQfzHpOdNuXwrwOU8u4ITXJyDCTyt8w5g1sZv9ynQ==}
engines: {node: '>=18.12'}
@@ -3948,6 +4398,27 @@ packages:
resolution: {integrity: sha512-6t3foTQI9qne+OZoVQB/8x8rk2k1eVy1gRXhV3oFQ5T6R1dqQ1xtin3XqSlx3+ATBkliTaR/hHyJBm+LVPNM8w==}
engines: {node: '>=4'}
+ unified@11.0.5:
+ resolution: {integrity: sha512-xKvGhPWw3k84Qjh8bI3ZeJjqnyadK+GEFtazSfZv/rKeTkTjOJho6mFqh2SM96iIcZokxiOpg78GazTSg8+KHA==}
+
+ unist-util-is@6.0.0:
+ resolution: {integrity: sha512-2qCTHimwdxLfz+YzdGfkqNlH0tLi9xjTnHddPmJwtIG9MGsdbutfTc4P+haPD7l7Cjxf/WZj+we5qfVPvvxfYw==}
+
+ unist-util-position-from-estree@2.0.0:
+ resolution: {integrity: sha512-KaFVRjoqLyF6YXCbVLNad/eS4+OfPQQn2yOd7zF/h5T/CSL2v8NpN6a5TPvtbXthAGw5nG+PuTtq+DdIZr+cRQ==}
+
+ unist-util-position@5.0.0:
+ resolution: {integrity: sha512-fucsC7HjXvkB5R3kTCO7kUjRdrS0BJt3M/FPxmHMBOm8JQi2BsHAHFsy27E0EolP8rp0NzXsJ+jNPyDWvOJZPA==}
+
+ unist-util-stringify-position@4.0.0:
+ resolution: {integrity: sha512-0ASV06AAoKCDkS2+xw5RXJywruurpbC4JZSm7nr7MOt1ojAzvyyaO+UxZf18j8FCF6kmzCZKcAgN/yu2gm2XgQ==}
+
+ unist-util-visit-parents@6.0.1:
+ resolution: {integrity: sha512-L/PqWzfTP9lzzEa6CKs0k2nARxTdZduw3zyh8d2NVBnsyvHjSX4TWse388YrrQKbvI8w20fGjGlhgT96WwKykw==}
+
+ unist-util-visit@5.0.0:
+ resolution: {integrity: sha512-MR04uvD+07cwl/yhVuVWAtw+3GOR/knlL55Nd/wAdblk27GCVt3lqpTivy/tkJcZoNPzTwS1Y+KMojlLDhoTzg==}
+
universalify@0.1.2:
resolution: {integrity: sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==}
engines: {node: '>= 4.0.0'}
@@ -3964,6 +4435,12 @@ packages:
uri-js@4.4.1:
resolution: {integrity: sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==}
+ vfile-message@4.0.2:
+ resolution: {integrity: sha512-jRDZ1IMLttGj41KcZvlrYAaI3CfqpLpfpf+Mfig13viT6NKvRzWZ+lXz0Y5D60w6uJIBAOGq9mSHf0gktF0duw==}
+
+ vfile@6.0.3:
+ resolution: {integrity: sha512-KzIbH/9tXat2u30jf+smMwFCsno4wHVdNmzFyL+T/L3UGqqk6JKfVqOFOZEpZSHADH1k40ab6NUIXZq422ov3Q==}
+
vite-node@2.1.8:
resolution: {integrity: sha512-uPAwSr57kYjAUux+8E2j0q0Fxpn8M9VoyfGiRI8Kfktz9NcYMCenwY5RnZxnF1WTu3TGiYipirIzacLL3VVGFg==}
engines: {node: ^18.0.0 || >=20.0.0}
@@ -4102,6 +4579,10 @@ packages:
resolution: {integrity: sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ==}
engines: {node: '>=12'}
+ xtend@4.0.2:
+ resolution: {integrity: sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==}
+ engines: {node: '>=0.4'}
+
yallist@3.1.1:
resolution: {integrity: sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==}
@@ -4120,6 +4601,9 @@ packages:
resolution: {integrity: sha512-b4JR1PFR10y1mKjhHY9LaGo6tmrgjit7hxVIeAmyMw3jegXR4dhYqLaQF5zMXZxY7tLpMyJeLjr1C4rLmkVe8g==}
engines: {node: '>=12.20'}
+ zwitch@2.0.4:
+ resolution: {integrity: sha512-bXE4cR/kVZhKZX/RjPEflHaKVhUVl85noU3v6b8apfQEc1x4A+zBxjZ4lN8LqGd6WZ3dl98pY4o717VFmoPp+A==}
+
snapshots:
'@ampproject/remapping@2.3.0':
@@ -5556,6 +6040,52 @@ snapshots:
globby: 11.1.0
read-yaml-file: 1.1.0
+ '@mdx-js/loader@3.1.0(acorn@8.14.0)(webpack@5.97.1)':
+ dependencies:
+ '@mdx-js/mdx': 3.1.0(acorn@8.14.0)
+ source-map: 0.7.4
+ optionalDependencies:
+ webpack: 5.97.1
+ transitivePeerDependencies:
+ - acorn
+ - supports-color
+
+ '@mdx-js/mdx@3.1.0(acorn@8.14.0)':
+ dependencies:
+ '@types/estree': 1.0.6
+ '@types/estree-jsx': 1.0.5
+ '@types/hast': 3.0.4
+ '@types/mdx': 2.0.13
+ collapse-white-space: 2.1.0
+ devlop: 1.1.0
+ estree-util-is-identifier-name: 3.0.0
+ estree-util-scope: 1.0.0
+ estree-walker: 3.0.3
+ hast-util-to-jsx-runtime: 2.3.2
+ markdown-extensions: 2.0.0
+ recma-build-jsx: 1.0.0
+ recma-jsx: 1.0.0(acorn@8.14.0)
+ recma-stringify: 1.0.0
+ rehype-recma: 1.0.0
+ remark-mdx: 3.1.0
+ remark-parse: 11.0.0
+ remark-rehype: 11.1.1
+ source-map: 0.7.4
+ unified: 11.0.5
+ unist-util-position-from-estree: 2.0.0
+ unist-util-stringify-position: 4.0.0
+ unist-util-visit: 5.0.0
+ vfile: 6.0.3
+ transitivePeerDependencies:
+ - acorn
+ - supports-color
+
+ '@mdx-js/react@3.1.0(@types/react@19.0.7)(react@19.0.0)':
+ dependencies:
+ '@types/mdx': 2.0.13
+ '@types/react': 19.0.7
+ react: 19.0.0
+
'@microsoft/api-extractor-model@7.30.2(@types/node@22.10.7)':
dependencies:
'@microsoft/tsdoc': 0.15.1
@@ -5593,6 +6123,13 @@ snapshots:
'@next/env@15.1.4': {}
+ '@next/mdx@15.1.4(@mdx-js/loader@3.1.0(acorn@8.14.0)(webpack@5.97.1))(@mdx-js/react@3.1.0(@types/react@19.0.7)(react@19.0.0))':
+ dependencies:
+ source-map: 0.7.4
+ optionalDependencies:
+ '@mdx-js/loader': 3.1.0(acorn@8.14.0)(webpack@5.97.1)
+ '@mdx-js/react': 3.1.0(@types/react@19.0.7)(react@19.0.0)
+
'@next/swc-darwin-arm64@15.1.4':
optional: true
@@ -5756,6 +6293,10 @@ snapshots:
mkdirp: 2.1.6
path-browserify: 1.0.1
+ '@types/acorn@4.0.6':
+ dependencies:
+ '@types/estree': 1.0.6
+
'@types/argparse@1.0.38': {}
'@types/babel__core@7.20.5':
@@ -5779,6 +6320,10 @@ snapshots:
dependencies:
'@babel/types': 7.26.5
+ '@types/debug@4.1.12':
+ dependencies:
+ '@types/ms': 0.7.34
+
'@types/eslint-scope@3.7.7':
dependencies:
'@types/eslint': 9.6.1
@@ -5789,10 +6334,30 @@ snapshots:
'@types/estree': 1.0.6
'@types/json-schema': 7.0.15
+ '@types/estree-jsx@1.0.5':
+ dependencies:
+ '@types/estree': 1.0.6
+
'@types/estree@1.0.6': {}
+ '@types/hast@2.3.10':
+ dependencies:
+ '@types/unist': 2.0.11
+
+ '@types/hast@3.0.4':
+ dependencies:
+ '@types/unist': 3.0.3
+
'@types/json-schema@7.0.15': {}
+ '@types/mdast@4.0.4':
+ dependencies:
+ '@types/unist': 3.0.3
+
+ '@types/mdx@2.0.13': {}
+
+ '@types/ms@0.7.34': {}
+
'@types/node@12.20.55': {}
'@types/node@22.10.7':
@@ -5805,12 +6370,20 @@ snapshots:
dependencies:
'@types/react': 19.0.7
+ '@types/react-syntax-highlighter@15.5.13':
+ dependencies:
+ '@types/react': 19.0.7
+
'@types/react@19.0.7':
dependencies:
csstype: 3.1.3
'@types/stylis@4.2.7': {}
+ '@types/unist@2.0.11': {}
+
+ '@types/unist@3.0.3': {}
+
'@types/webpack@5.28.5':
dependencies:
'@types/node': 22.10.7
@@ -5899,6 +6472,8 @@ snapshots:
'@typescript-eslint/types': 8.20.0
eslint-visitor-keys: 4.2.0
+ '@ungap/structured-clone@1.2.1': {}
+
'@vitejs/plugin-react@4.3.4(vite@6.0.7(@types/node@22.10.7)(terser@5.37.0))':
dependencies:
'@babel/core': 7.26.0
@@ -6698,6 +7273,8 @@ snapshots:
assertion-error@2.0.1: {}
+ astring@1.9.0: {}
+
available-typed-arrays@1.0.7:
dependencies:
possible-typed-array-names: 1.0.0
@@ -6739,6 +7316,8 @@ snapshots:
transitivePeerDependencies:
- supports-color
+ bail@2.0.2: {}
+
balanced-match@1.0.2: {}
better-path-resolve@1.0.0:
@@ -6801,6 +7380,8 @@ snapshots:
caniuse-lite@1.0.30001692: {}
+ ccount@2.0.1: {}
+
chai@5.1.2:
dependencies:
assertion-error: 2.0.1
@@ -6814,6 +7395,20 @@ snapshots:
ansi-styles: 4.3.0
supports-color: 7.2.0
+ character-entities-html4@2.1.0: {}
+
+ character-entities-legacy@1.1.4: {}
+
+ character-entities-legacy@3.0.0: {}
+
+ character-entities@1.2.4: {}
+
+ character-entities@2.0.2: {}
+
+ character-reference-invalid@1.1.4: {}
+
+ character-reference-invalid@2.0.1: {}
+
chardet@0.7.0: {}
check-error@2.1.1: {}
@@ -6826,6 +7421,8 @@ snapshots:
code-block-writer@12.0.0: {}
+ collapse-white-space@2.1.0: {}
+
color-convert@2.0.1:
dependencies:
color-name: 1.1.4
@@ -6844,6 +7441,10 @@ snapshots:
color-string: 1.9.1
optional: true
+ comma-separated-tokens@1.0.8: {}
+
+ comma-separated-tokens@2.0.3: {}
+
commander@2.20.3: {}
common-path-prefix@3.0.0: {}
@@ -6902,6 +7503,10 @@ snapshots:
dependencies:
ms: 2.1.3
+ decode-named-character-reference@1.0.2:
+ dependencies:
+ character-entities: 2.0.2
+
deep-eql@5.0.2: {}
deep-is@0.1.4: {}
@@ -6918,11 +7523,17 @@ snapshots:
has-property-descriptors: 1.0.2
object-keys: 1.1.1
+ dequal@2.0.3: {}
+
detect-indent@6.1.0: {}
detect-libc@2.0.3:
optional: true
+ devlop@1.1.0:
+ dependencies:
+ dequal: 2.0.3
+
dir-glob@3.0.1:
dependencies:
path-type: 4.0.0
@@ -7061,6 +7672,20 @@ snapshots:
is-date-object: 1.1.0
is-symbol: 1.1.1
+ esast-util-from-estree@2.0.0:
+ dependencies:
+ '@types/estree-jsx': 1.0.5
+ devlop: 1.1.0
+ estree-util-visit: 2.0.0
+ unist-util-position-from-estree: 2.0.0
+
+ esast-util-from-js@2.0.1:
+ dependencies:
+ '@types/estree-jsx': 1.0.5
+ acorn: 8.14.0
+ esast-util-from-estree: 2.0.0
+ vfile-message: 4.0.2
+
esbuild@0.18.20:
optionalDependencies:
'@esbuild/android-arm': 0.18.20
@@ -7260,6 +7885,35 @@ snapshots:
estraverse@5.3.0: {}
+ estree-util-attach-comments@3.0.0:
+ dependencies:
+ '@types/estree': 1.0.6
+
+ estree-util-build-jsx@3.0.1:
+ dependencies:
+ '@types/estree-jsx': 1.0.5
+ devlop: 1.1.0
+ estree-util-is-identifier-name: 3.0.0
+ estree-walker: 3.0.3
+
+ estree-util-is-identifier-name@3.0.0: {}
+
+ estree-util-scope@1.0.0:
+ dependencies:
+ '@types/estree': 1.0.6
+ devlop: 1.1.0
+
+ estree-util-to-js@2.0.0:
+ dependencies:
+ '@types/estree-jsx': 1.0.5
+ astring: 1.9.0
+ source-map: 0.7.4
+
+ estree-util-visit@2.0.0:
+ dependencies:
+ '@types/estree-jsx': 1.0.5
+ '@types/unist': 3.0.3
+
estree-walker@2.0.2: {}
estree-walker@3.0.3:
@@ -7277,6 +7931,8 @@ snapshots:
expect-type@1.1.0: {}
+ extend@3.0.2: {}
+
extendable-error@0.1.7: {}
external-editor@3.1.0:
@@ -7307,6 +7963,10 @@ snapshots:
dependencies:
reusify: 1.0.4
+ fault@1.0.4:
+ dependencies:
+ format: 0.2.2
+
file-entry-cache@8.0.0:
dependencies:
flat-cache: 4.0.1
@@ -7353,6 +8013,8 @@ snapshots:
cross-spawn: 7.0.6
signal-exit: 4.1.0
+ format@0.2.2: {}
+
fs-extra@7.0.1:
dependencies:
graceful-fs: 4.2.11
@@ -7472,8 +8134,67 @@ snapshots:
dependencies:
function-bind: 1.1.2
+ hast-util-parse-selector@2.2.5: {}
+
+ hast-util-to-estree@3.1.1:
+ dependencies:
+ '@types/estree': 1.0.6
+ '@types/estree-jsx': 1.0.5
+ '@types/hast': 3.0.4
+ comma-separated-tokens: 2.0.3
+ devlop: 1.1.0
+ estree-util-attach-comments: 3.0.0
+ estree-util-is-identifier-name: 3.0.0
+ hast-util-whitespace: 3.0.0
+ mdast-util-mdx-expression: 2.0.1
+ mdast-util-mdx-jsx: 3.2.0
+ mdast-util-mdxjs-esm: 2.0.1
+ property-information: 6.5.0
+ space-separated-tokens: 2.0.2
+ style-to-object: 1.0.8
+ unist-util-position: 5.0.0
+ zwitch: 2.0.4
+ transitivePeerDependencies:
+ - supports-color
+
+ hast-util-to-jsx-runtime@2.3.2:
+ dependencies:
+ '@types/estree': 1.0.6
+ '@types/hast': 3.0.4
+ '@types/unist': 3.0.3
+ comma-separated-tokens: 2.0.3
+ devlop: 1.1.0
+ estree-util-is-identifier-name: 3.0.0
+ hast-util-whitespace: 3.0.0
+ mdast-util-mdx-expression: 2.0.1
+ mdast-util-mdx-jsx: 3.2.0
+ mdast-util-mdxjs-esm: 2.0.1
+ property-information: 6.5.0
+ space-separated-tokens: 2.0.2
+ style-to-object: 1.0.8
+ unist-util-position: 5.0.0
+ vfile-message: 4.0.2
+ transitivePeerDependencies:
+ - supports-color
+
+ hast-util-whitespace@3.0.0:
+ dependencies:
+ '@types/hast': 3.0.4
+
+ hastscript@6.0.0:
+ dependencies:
+ '@types/hast': 2.3.10
+ comma-separated-tokens: 1.0.8
+ hast-util-parse-selector: 2.2.5
+ property-information: 5.6.0
+ space-separated-tokens: 1.1.5
+
he@1.2.0: {}
+ highlight.js@10.7.3: {}
+
+ highlightjs-vue@1.0.0: {}
+
hoist-non-react-statics@3.3.2:
dependencies:
react-is: 16.13.1
@@ -7497,12 +8218,28 @@ snapshots:
imurmurhash@0.1.4: {}
+ inline-style-parser@0.2.4: {}
+
internal-slot@1.1.0:
dependencies:
es-errors: 1.3.0
hasown: 2.0.2
side-channel: 1.1.0
+ is-alphabetical@1.0.4: {}
+
+ is-alphabetical@2.0.1: {}
+
+ is-alphanumerical@1.0.4:
+ dependencies:
+ is-alphabetical: 1.0.4
+ is-decimal: 1.0.4
+
+ is-alphanumerical@2.0.1:
+ dependencies:
+ is-alphabetical: 2.0.1
+ is-decimal: 2.0.1
+
is-array-buffer@3.0.5:
dependencies:
call-bind: 1.0.8
@@ -7547,6 +8284,10 @@ snapshots:
call-bound: 1.0.3
has-tostringtag: 1.0.2
+ is-decimal@1.0.4: {}
+
+ is-decimal@2.0.1: {}
+
is-extglob@2.1.1: {}
is-finalizationregistry@1.1.1:
@@ -7566,6 +8307,10 @@ snapshots:
dependencies:
is-extglob: 2.1.1
+ is-hexadecimal@1.0.4: {}
+
+ is-hexadecimal@2.0.1: {}
+
is-map@2.0.3: {}
is-number-object@1.1.1:
@@ -7575,6 +8320,8 @@ snapshots:
is-number@7.0.0: {}
+ is-plain-obj@4.1.0: {}
+
is-regex@1.2.1:
dependencies:
call-bound: 1.0.3
@@ -7746,12 +8493,19 @@ snapshots:
lodash@4.17.21: {}
+ longest-streak@3.1.0: {}
+
loose-envify@1.4.0:
dependencies:
js-tokens: 4.0.0
loupe@3.1.2: {}
+ lowlight@1.20.0:
+ dependencies:
+ fault: 1.0.4
+ highlight.js: 10.7.3
+
lru-cache@10.4.3: {}
lru-cache@5.1.1:
@@ -7776,12 +8530,321 @@ snapshots:
dependencies:
semver: 7.6.3
+ markdown-extensions@2.0.0: {}
+
math-intrinsics@1.1.0: {}
+ mdast-util-from-markdown@2.0.2:
+ dependencies:
+ '@types/mdast': 4.0.4
+ '@types/unist': 3.0.3
+ decode-named-character-reference: 1.0.2
+ devlop: 1.1.0
+ mdast-util-to-string: 4.0.0
+ micromark: 4.0.1
+ micromark-util-decode-numeric-character-reference: 2.0.2
+ micromark-util-decode-string: 2.0.1
+ micromark-util-normalize-identifier: 2.0.1
+ micromark-util-symbol: 2.0.1
+ micromark-util-types: 2.0.1
+ unist-util-stringify-position: 4.0.0
+ transitivePeerDependencies:
+ - supports-color
+
+ mdast-util-mdx-expression@2.0.1:
+ dependencies:
+ '@types/estree-jsx': 1.0.5
+ '@types/hast': 3.0.4
+ '@types/mdast': 4.0.4
+ devlop: 1.1.0
+ mdast-util-from-markdown: 2.0.2
+ mdast-util-to-markdown: 2.1.2
+ transitivePeerDependencies:
+ - supports-color
+
+ mdast-util-mdx-jsx@3.2.0:
+ dependencies:
+ '@types/estree-jsx': 1.0.5
+ '@types/hast': 3.0.4
+ '@types/mdast': 4.0.4
+ '@types/unist': 3.0.3
+ ccount: 2.0.1
+ devlop: 1.1.0
+ mdast-util-from-markdown: 2.0.2
+ mdast-util-to-markdown: 2.1.2
+ parse-entities: 4.0.2
+ stringify-entities: 4.0.4
+ unist-util-stringify-position: 4.0.0
+ vfile-message: 4.0.2
+ transitivePeerDependencies:
+ - supports-color
+
+ mdast-util-mdx@3.0.0:
+ dependencies:
+ mdast-util-from-markdown: 2.0.2
+ mdast-util-mdx-expression: 2.0.1
+ mdast-util-mdx-jsx: 3.2.0
+ mdast-util-mdxjs-esm: 2.0.1
+ mdast-util-to-markdown: 2.1.2
+ transitivePeerDependencies:
+ - supports-color
+
+ mdast-util-mdxjs-esm@2.0.1:
+ dependencies:
+ '@types/estree-jsx': 1.0.5
+ '@types/hast': 3.0.4
+ '@types/mdast': 4.0.4
+ devlop: 1.1.0
+ mdast-util-from-markdown: 2.0.2
+ mdast-util-to-markdown: 2.1.2
+ transitivePeerDependencies:
+ - supports-color
+
+ mdast-util-phrasing@4.1.0:
+ dependencies:
+ '@types/mdast': 4.0.4
+ unist-util-is: 6.0.0
+
+ mdast-util-to-hast@13.2.0:
+ dependencies:
+ '@types/hast': 3.0.4
+ '@types/mdast': 4.0.4
+ '@ungap/structured-clone': 1.2.1
+ devlop: 1.1.0
+ micromark-util-sanitize-uri: 2.0.1
+ trim-lines: 3.0.1
+ unist-util-position: 5.0.0
+ unist-util-visit: 5.0.0
+ vfile: 6.0.3
+
+ mdast-util-to-markdown@2.1.2:
+ dependencies:
+ '@types/mdast': 4.0.4
+ '@types/unist': 3.0.3
+ longest-streak: 3.1.0
+ mdast-util-phrasing: 4.1.0
+ mdast-util-to-string: 4.0.0
+ micromark-util-classify-character: 2.0.1
+ micromark-util-decode-string: 2.0.1
+ unist-util-visit: 5.0.0
+ zwitch: 2.0.4
+
+ mdast-util-to-string@4.0.0:
+ dependencies:
+ '@types/mdast': 4.0.4
+
merge-stream@2.0.0: {}
merge2@1.4.1: {}
+ micromark-core-commonmark@2.0.2:
+ dependencies:
+ decode-named-character-reference: 1.0.2
+ devlop: 1.1.0
+ micromark-factory-destination: 2.0.1
+ micromark-factory-label: 2.0.1
+ micromark-factory-space: 2.0.1
+ micromark-factory-title: 2.0.1
+ micromark-factory-whitespace: 2.0.1
+ micromark-util-character: 2.1.1
+ micromark-util-chunked: 2.0.1
+ micromark-util-classify-character: 2.0.1
+ micromark-util-html-tag-name: 2.0.1
+ micromark-util-normalize-identifier: 2.0.1
+ micromark-util-resolve-all: 2.0.1
+ micromark-util-subtokenize: 2.0.3
+ micromark-util-symbol: 2.0.1
+ micromark-util-types: 2.0.1
+
+ micromark-extension-mdx-expression@3.0.0:
+ dependencies:
+ '@types/estree': 1.0.6
+ devlop: 1.1.0
+ micromark-factory-mdx-expression: 2.0.2
+ micromark-factory-space: 2.0.1
+ micromark-util-character: 2.1.1
+ micromark-util-events-to-acorn: 2.0.2
+ micromark-util-symbol: 2.0.1
+ micromark-util-types: 2.0.1
+
+ micromark-extension-mdx-jsx@3.0.1:
+ dependencies:
+ '@types/acorn': 4.0.6
+ '@types/estree': 1.0.6
+ devlop: 1.1.0
+ estree-util-is-identifier-name: 3.0.0
+ micromark-factory-mdx-expression: 2.0.2
+ micromark-factory-space: 2.0.1
+ micromark-util-character: 2.1.1
+ micromark-util-events-to-acorn: 2.0.2
+ micromark-util-symbol: 2.0.1
+ micromark-util-types: 2.0.1
+ vfile-message: 4.0.2
+
+ micromark-extension-mdx-md@2.0.0:
+ dependencies:
+ micromark-util-types: 2.0.1
+
+ micromark-extension-mdxjs-esm@3.0.0:
+ dependencies:
+ '@types/estree': 1.0.6
+ devlop: 1.1.0
+ micromark-core-commonmark: 2.0.2
+ micromark-util-character: 2.1.1
+ micromark-util-events-to-acorn: 2.0.2
+ micromark-util-symbol: 2.0.1
+ micromark-util-types: 2.0.1
+ unist-util-position-from-estree: 2.0.0
+ vfile-message: 4.0.2
+
+ micromark-extension-mdxjs@3.0.0:
+ dependencies:
+ acorn: 8.14.0
+ acorn-jsx: 5.3.2(acorn@8.14.0)
+ micromark-extension-mdx-expression: 3.0.0
+ micromark-extension-mdx-jsx: 3.0.1
+ micromark-extension-mdx-md: 2.0.0
+ micromark-extension-mdxjs-esm: 3.0.0
+ micromark-util-combine-extensions: 2.0.1
+ micromark-util-types: 2.0.1
+
+ micromark-factory-destination@2.0.1:
+ dependencies:
+ micromark-util-character: 2.1.1
+ micromark-util-symbol: 2.0.1
+ micromark-util-types: 2.0.1
+
+ micromark-factory-label@2.0.1:
+ dependencies:
+ devlop: 1.1.0
+ micromark-util-character: 2.1.1
+ micromark-util-symbol: 2.0.1
+ micromark-util-types: 2.0.1
+
+ micromark-factory-mdx-expression@2.0.2:
+ dependencies:
+ '@types/estree': 1.0.6
+ devlop: 1.1.0
+ micromark-factory-space: 2.0.1
+ micromark-util-character: 2.1.1
+ micromark-util-events-to-acorn: 2.0.2
+ micromark-util-symbol: 2.0.1
+ micromark-util-types: 2.0.1
+ unist-util-position-from-estree: 2.0.0
+ vfile-message: 4.0.2
+
+ micromark-factory-space@2.0.1:
+ dependencies:
+ micromark-util-character: 2.1.1
+ micromark-util-types: 2.0.1
+
+ micromark-factory-title@2.0.1:
+ dependencies:
+ micromark-factory-space: 2.0.1
+ micromark-util-character: 2.1.1
+ micromark-util-symbol: 2.0.1
+ micromark-util-types: 2.0.1
+
+ micromark-factory-whitespace@2.0.1:
+ dependencies:
+ micromark-factory-space: 2.0.1
+ micromark-util-character: 2.1.1
+ micromark-util-symbol: 2.0.1
+ micromark-util-types: 2.0.1
+
+ micromark-util-character@2.1.1:
+ dependencies:
+ micromark-util-symbol: 2.0.1
+ micromark-util-types: 2.0.1
+
+ micromark-util-chunked@2.0.1:
+ dependencies:
+ micromark-util-symbol: 2.0.1
+
+ micromark-util-classify-character@2.0.1:
+ dependencies:
+ micromark-util-character: 2.1.1
+ micromark-util-symbol: 2.0.1
+ micromark-util-types: 2.0.1
+
+ micromark-util-combine-extensions@2.0.1:
+ dependencies:
+ micromark-util-chunked: 2.0.1
+ micromark-util-types: 2.0.1
+
+ micromark-util-decode-numeric-character-reference@2.0.2:
+ dependencies:
+ micromark-util-symbol: 2.0.1
+
+ micromark-util-decode-string@2.0.1:
+ dependencies:
+ decode-named-character-reference: 1.0.2
+ micromark-util-character: 2.1.1
+ micromark-util-decode-numeric-character-reference: 2.0.2
+ micromark-util-symbol: 2.0.1
+
+ micromark-util-encode@2.0.1: {}
+
+ micromark-util-events-to-acorn@2.0.2:
+ dependencies:
+ '@types/acorn': 4.0.6
+ '@types/estree': 1.0.6
+ '@types/unist': 3.0.3
+ devlop: 1.1.0
+ estree-util-visit: 2.0.0
+ micromark-util-symbol: 2.0.1
+ micromark-util-types: 2.0.1
+ vfile-message: 4.0.2
+
+ micromark-util-html-tag-name@2.0.1: {}
+
+ micromark-util-normalize-identifier@2.0.1:
+ dependencies:
+ micromark-util-symbol: 2.0.1
+
+ micromark-util-resolve-all@2.0.1:
+ dependencies:
+ micromark-util-types: 2.0.1
+
+ micromark-util-sanitize-uri@2.0.1:
+ dependencies:
+ micromark-util-character: 2.1.1
+ micromark-util-encode: 2.0.1
+ micromark-util-symbol: 2.0.1
+
+ micromark-util-subtokenize@2.0.3:
+ dependencies:
+ devlop: 1.1.0
+ micromark-util-chunked: 2.0.1
+ micromark-util-symbol: 2.0.1
+ micromark-util-types: 2.0.1
+
+ micromark-util-symbol@2.0.1: {}
+
+ micromark-util-types@2.0.1: {}
+
+ micromark@4.0.1:
+ dependencies:
+ '@types/debug': 4.1.12
+ debug: 4.4.0
+ decode-named-character-reference: 1.0.2
+ devlop: 1.1.0
+ micromark-core-commonmark: 2.0.2
+ micromark-factory-space: 2.0.1
+ micromark-util-character: 2.1.1
+ micromark-util-chunked: 2.0.1
+ micromark-util-combine-extensions: 2.0.1
+ micromark-util-decode-numeric-character-reference: 2.0.2
+ micromark-util-encode: 2.0.1
+ micromark-util-normalize-identifier: 2.0.1
+ micromark-util-resolve-all: 2.0.1
+ micromark-util-sanitize-uri: 2.0.1
+ micromark-util-subtokenize: 2.0.3
+ micromark-util-symbol: 2.0.1
+ micromark-util-types: 2.0.1
+ transitivePeerDependencies:
+ - supports-color
+
micromatch@4.0.8:
dependencies:
braces: 3.0.3
@@ -7958,6 +9021,25 @@ snapshots:
dependencies:
callsites: 3.1.0
+ parse-entities@2.0.0:
+ dependencies:
+ character-entities: 1.2.4
+ character-entities-legacy: 1.1.4
+ character-reference-invalid: 1.1.4
+ is-alphanumerical: 1.0.4
+ is-decimal: 1.0.4
+ is-hexadecimal: 1.0.4
+
+ parse-entities@4.0.2:
+ dependencies:
+ '@types/unist': 2.0.11
+ 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
+
parse-json@5.2.0:
dependencies:
'@babel/code-frame': 7.26.2
@@ -8032,12 +9114,22 @@ snapshots:
prettier@3.4.2: {}
+ prismjs@1.27.0: {}
+
+ prismjs@1.29.0: {}
+
prop-types@15.8.1:
dependencies:
loose-envify: 1.4.0
object-assign: 4.1.1
react-is: 16.13.1
+ property-information@5.6.0:
+ dependencies:
+ xtend: 4.0.2
+
+ property-information@6.5.0: {}
+
proxy-compare@3.0.1: {}
proxy-memoize@3.0.1:
@@ -8065,6 +9157,16 @@ snapshots:
react-refresh@0.14.2: {}
+ react-syntax-highlighter@15.6.1(react@19.0.0):
+ dependencies:
+ '@babel/runtime': 7.26.0
+ highlight.js: 10.7.3
+ highlightjs-vue: 1.0.0
+ lowlight: 1.20.0
+ prismjs: 1.29.0
+ react: 19.0.0
+ refractor: 3.6.0
+
react@19.0.0: {}
read-yaml-file@1.1.0:
@@ -8074,6 +9176,36 @@ snapshots:
pify: 4.0.1
strip-bom: 3.0.0
+ recma-build-jsx@1.0.0:
+ dependencies:
+ '@types/estree': 1.0.6
+ estree-util-build-jsx: 3.0.1
+ vfile: 6.0.3
+
+ recma-jsx@1.0.0(acorn@8.14.0):
+ dependencies:
+ acorn-jsx: 5.3.2(acorn@8.14.0)
+ estree-util-to-js: 2.0.0
+ recma-parse: 1.0.0
+ recma-stringify: 1.0.0
+ unified: 11.0.5
+ transitivePeerDependencies:
+ - acorn
+
+ recma-parse@1.0.0:
+ dependencies:
+ '@types/estree': 1.0.6
+ esast-util-from-js: 2.0.1
+ unified: 11.0.5
+ vfile: 6.0.3
+
+ recma-stringify@1.0.0:
+ dependencies:
+ '@types/estree': 1.0.6
+ estree-util-to-js: 2.0.0
+ unified: 11.0.5
+ vfile: 6.0.3
+
reflect.getprototypeof@1.0.10:
dependencies:
call-bind: 1.0.8
@@ -8085,6 +9217,12 @@ snapshots:
get-proto: 1.0.1
which-builtin-type: 1.2.1
+ refractor@3.6.0:
+ dependencies:
+ hastscript: 6.0.0
+ parse-entities: 2.0.0
+ prismjs: 1.27.0
+
regenerate-unicode-properties@10.2.0:
dependencies:
regenerate: 1.4.2
@@ -8121,6 +9259,38 @@ snapshots:
dependencies:
jsesc: 3.0.2
+ rehype-recma@1.0.0:
+ dependencies:
+ '@types/estree': 1.0.6
+ '@types/hast': 3.0.4
+ hast-util-to-estree: 3.1.1
+ transitivePeerDependencies:
+ - supports-color
+
+ remark-mdx@3.1.0:
+ dependencies:
+ mdast-util-mdx: 3.0.0
+ micromark-extension-mdxjs: 3.0.0
+ transitivePeerDependencies:
+ - supports-color
+
+ remark-parse@11.0.0:
+ dependencies:
+ '@types/mdast': 4.0.4
+ mdast-util-from-markdown: 2.0.2
+ micromark-util-types: 2.0.1
+ unified: 11.0.5
+ transitivePeerDependencies:
+ - supports-color
+
+ remark-rehype@11.1.1:
+ dependencies:
+ '@types/hast': 3.0.4
+ '@types/mdast': 4.0.4
+ mdast-util-to-hast: 13.2.0
+ unified: 11.0.5
+ vfile: 6.0.3
+
require-from-string@2.0.2: {}
require-like@0.1.2: {}
@@ -8195,6 +9365,8 @@ snapshots:
safer-buffer@2.1.2: {}
+ sanitize.css@13.0.0: {}
+
scheduler@0.25.0: {}
schema-utils@3.3.0:
@@ -8327,6 +9499,12 @@ snapshots:
source-map@0.6.1: {}
+ source-map@0.7.4: {}
+
+ space-separated-tokens@1.1.5: {}
+
+ space-separated-tokens@2.0.2: {}
+
spawndamnit@3.0.1:
dependencies:
cross-spawn: 7.0.6
@@ -8398,6 +9576,11 @@ snapshots:
define-properties: 1.2.1
es-object-atoms: 1.1.1
+ stringify-entities@4.0.4:
+ dependencies:
+ character-entities-html4: 2.1.0
+ character-entities-legacy: 3.0.0
+
strip-ansi@6.0.1:
dependencies:
ansi-regex: 5.0.1
@@ -8410,6 +9593,10 @@ snapshots:
strip-json-comments@3.1.1: {}
+ style-to-object@1.0.8:
+ dependencies:
+ inline-style-parser: 0.2.4
+
styled-jsx@5.1.6(@babel/core@7.26.0)(react@19.0.0):
dependencies:
client-only: 0.0.1
@@ -8480,6 +9667,10 @@ snapshots:
dependencies:
is-number: 7.0.0
+ trim-lines@3.0.1: {}
+
+ trough@2.2.0: {}
+
ts-api-utils@2.0.0(typescript@5.7.3):
dependencies:
typescript: 5.7.3
@@ -8564,6 +9755,43 @@ snapshots:
unicode-property-aliases-ecmascript@2.1.0: {}
+ unified@11.0.5:
+ dependencies:
+ '@types/unist': 3.0.3
+ bail: 2.0.2
+ devlop: 1.1.0
+ extend: 3.0.2
+ is-plain-obj: 4.1.0
+ trough: 2.2.0
+ vfile: 6.0.3
+
+ unist-util-is@6.0.0:
+ dependencies:
+ '@types/unist': 3.0.3
+
+ unist-util-position-from-estree@2.0.0:
+ dependencies:
+ '@types/unist': 3.0.3
+
+ unist-util-position@5.0.0:
+ dependencies:
+ '@types/unist': 3.0.3
+
+ unist-util-stringify-position@4.0.0:
+ dependencies:
+ '@types/unist': 3.0.3
+
+ unist-util-visit-parents@6.0.1:
+ dependencies:
+ '@types/unist': 3.0.3
+ unist-util-is: 6.0.0
+
+ unist-util-visit@5.0.0:
+ dependencies:
+ '@types/unist': 3.0.3
+ unist-util-is: 6.0.0
+ unist-util-visit-parents: 6.0.1
+
universalify@0.1.2: {}
update-browserslist-db@1.1.2(browserslist@4.21.5):
@@ -8584,6 +9812,16 @@ snapshots:
dependencies:
punycode: 2.3.1
+ vfile-message@4.0.2:
+ dependencies:
+ '@types/unist': 3.0.3
+ unist-util-stringify-position: 4.0.0
+
+ vfile@6.0.3:
+ dependencies:
+ '@types/unist': 3.0.3
+ vfile-message: 4.0.2
+
vite-node@2.1.8(@types/node@22.10.7)(terser@5.37.0):
dependencies:
cac: 6.7.14
@@ -8774,6 +10012,8 @@ snapshots:
string-width: 5.1.2
strip-ansi: 7.1.0
+ xtend@4.0.2: {}
+
yallist@3.1.1: {}
yallist@4.0.0: {}
@@ -8783,3 +10023,5 @@ snapshots:
yocto-queue@0.1.0: {}
yocto-queue@1.1.1: {}
+
+ zwitch@2.0.4: {}