diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index c0d04588..6614197c 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -22,3 +22,6 @@ jobs: - name: test run: pnpm test:ci + + - name: knip + run: pnpm knip diff --git a/eslint.config.mjs b/eslint.config.mjs index f9a7a67c..c80ab440 100644 --- a/eslint.config.mjs +++ b/eslint.config.mjs @@ -56,6 +56,7 @@ export default defineConfig([ "react/prop-types": "off", "no-unused-vars": "off", "no-undef": "off", // Handled by TypeScript + curly: "error", "object-shorthand": "error", "no-useless-rename": "error", @@ -68,19 +69,6 @@ export default defineConfig([ }, ], - "@typescript-eslint/naming-convention": [ - "error", - { - selector: "interface", - format: ["PascalCase"], - - custom: { - regex: "^I[A-Z]", - match: true, - }, - }, - ], - "@typescript-eslint/consistent-type-imports": [ "error", { diff --git a/knip.jsonc b/knip.jsonc new file mode 100644 index 00000000..0e06be53 --- /dev/null +++ b/knip.jsonc @@ -0,0 +1,12 @@ +{ + "$schema": "https://unpkg.com/knip@5/schema-jsonc.json", + "rules": { + "types": "warn" + }, + "ignoreDependencies": ["server-only"], + "ignore": [ + "mdx-plugins/remark-codehike.mjs", + "src/app/**/article/**/metadata*.tsx", + ], + "tags": ["-lintignore"] +} diff --git a/next.config.mjs b/next.config.mjs index 964fbd37..569bf496 100644 --- a/next.config.mjs +++ b/next.config.mjs @@ -159,6 +159,7 @@ const withMDX = mdx({ }, }, ], + "@hbsnow/rehype-sectionize", ], }, }); diff --git a/package.json b/package.json index dde6b227..b133868a 100644 --- a/package.json +++ b/package.json @@ -16,12 +16,11 @@ }, "dependencies": { "@echoja/remark-custom-container": "^1.4.0", + "@hbsnow/rehype-sectionize": "1.0.7", "@heroui/react": "2.8.6", - "@heroui/theme": "2.4.24", "@mdx-js/loader": "^3.1.1", "@mdx-js/react": "^3.1.1", "@next/bundle-analyzer": "16.1.0", - "@next/env": "16.1.0", "@next/mdx": "16.1.0", "codehike": "1.0.7", "dayjs": "^1.11.19", @@ -32,7 +31,6 @@ "next-seo": "^7.0.1", "react": "19.2.3", "react-dom": "19.2.3", - "react-wrap-balancer": "^1.1.1", "rehype-autolink-headings": "^7.1.0", "rehype-slug": "^6.0.0", "remark-gfm": "4.0.1", @@ -41,21 +39,16 @@ "vite": "^7.3.0" }, "devDependencies": { - "@eslint/eslintrc": "^3.3.3", "@eslint/js": "^9.39.2", "@next/eslint-plugin-next": "16.1.0", "@tailwindcss/postcss": "^4.1.18", "@types/mdx": "^2.0.13", "@types/node": "^25.0.3", "@types/react": "19.2.7", - "@typescript-eslint/eslint-plugin": "^8.50.0", "@typescript-eslint/parser": "^8.50.0", "@vitejs/plugin-react": "^5.1.2", "eslint": "^9.39.2", - "eslint-config-next": "16.1.0", "eslint-config-prettier": "^10.1.8", - "eslint-mdx": "^3.6.2", - "eslint-plugin-mdx": "^3.6.2", "eslint-plugin-prettier": "^5.5.4", "eslint-plugin-react": "^7.37.5", "eslint-plugin-react-hooks": "^7.0.1", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index d03f8253..be709701 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -14,12 +14,12 @@ importers: '@echoja/remark-custom-container': specifier: ^1.4.0 version: 1.4.0 + '@hbsnow/rehype-sectionize': + specifier: 1.0.7 + version: 1.0.7 '@heroui/react': specifier: 2.8.6 version: 2.8.6(@types/react@19.2.7)(framer-motion@12.23.26(react-dom@19.2.3(react@19.2.3))(react@19.2.3))(react-dom@19.2.3(react@19.2.3))(react@19.2.3)(tailwindcss@4.1.18) - '@heroui/theme': - specifier: 2.4.24 - version: 2.4.24(tailwindcss@4.1.18) '@mdx-js/loader': specifier: ^3.1.1 version: 3.1.1(acorn@8.15.0)(webpack@5.97.1) @@ -29,9 +29,6 @@ importers: '@next/bundle-analyzer': specifier: 16.1.0 version: 16.1.0 - '@next/env': - specifier: 16.1.0 - version: 16.1.0 '@next/mdx': specifier: 16.1.0 version: 16.1.0(@mdx-js/loader@3.1.1(acorn@8.15.0)(webpack@5.97.1))(@mdx-js/react@3.1.1(@types/react@19.2.7)(react@19.2.3)) @@ -62,9 +59,6 @@ importers: react-dom: specifier: 19.2.3 version: 19.2.3(react@19.2.3) - react-wrap-balancer: - specifier: ^1.1.1 - version: 1.1.1(react@19.2.3) rehype-autolink-headings: specifier: ^7.1.0 version: 7.1.0 @@ -84,9 +78,6 @@ importers: specifier: ^7.3.0 version: 7.3.0(@types/node@25.0.3)(jiti@2.6.1)(lightningcss@1.30.2)(terser@5.37.0)(yaml@2.8.0) devDependencies: - '@eslint/eslintrc': - specifier: ^3.3.3 - version: 3.3.3 '@eslint/js': specifier: ^9.39.2 version: 9.39.2 @@ -105,9 +96,6 @@ importers: '@types/react': specifier: 19.2.7 version: 19.2.7 - '@typescript-eslint/eslint-plugin': - specifier: ^8.50.0 - version: 8.50.0(@typescript-eslint/parser@8.50.0(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3))(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3) '@typescript-eslint/parser': specifier: ^8.50.0 version: 8.50.0(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3) @@ -117,18 +105,9 @@ importers: eslint: specifier: ^9.39.2 version: 9.39.2(jiti@2.6.1) - eslint-config-next: - specifier: 16.1.0 - version: 16.1.0(@typescript-eslint/parser@8.50.0(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3))(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3) eslint-config-prettier: specifier: ^10.1.8 version: 10.1.8(eslint@9.39.2(jiti@2.6.1)) - eslint-mdx: - specifier: ^3.6.2 - version: 3.6.2(eslint@9.39.2(jiti@2.6.1)) - eslint-plugin-mdx: - specifier: ^3.6.2 - version: 3.6.2(eslint@9.39.2(jiti@2.6.1)) eslint-plugin-prettier: specifier: ^5.5.4 version: 5.5.4(@types/eslint@9.6.1)(eslint-config-prettier@10.1.8(eslint@9.39.2(jiti@2.6.1)))(eslint@9.39.2(jiti@2.6.1))(prettier@3.6.2) @@ -485,6 +464,10 @@ packages: '@formatjs/intl-localematcher@0.6.2': resolution: {integrity: sha512-XOMO2Hupl0wdd172Y06h6kLpBz6Dv+J4okPLl4LPtzbr8f66WbIoy4ev98EBuZ6ZK4h5ydTN6XneT4QVpD7cdA==} + '@hbsnow/rehype-sectionize@1.0.7': + resolution: {integrity: sha512-twbVxCFf4YwgTm6FIdGtHfJ14vvIHedk2fqZTpE3X6+vszEeZlMTy7tOyI9KaP/6S2DN2Jnk7zZGtZANTD+vEg==} + engines: {node: '>=16.0.0'} + '@heroui/accordion@2.2.25': resolution: {integrity: sha512-cukvjTXfSLxjCZJ2PwLYUdkJuzKgKfbYkA+l2yvtYfrAQ8G0uz8a+tAGKGcciVLtYke1KsZ/pKjbpInWgGUV7A==} peerDependencies: @@ -1210,10 +1193,6 @@ packages: '@internationalized/string@3.2.7': resolution: {integrity: sha512-D4OHBjrinH+PFZPvfCXvG28n2LSykWcJ7GIioQL+ok0LON15SdfoUssoHzzOUmVZLbRoREsQXVzA6r8JKsbP6A==} - '@isaacs/cliui@8.0.2': - resolution: {integrity: sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA==} - engines: {node: '>=12'} - '@jridgewell/gen-mapping@0.3.13': resolution: {integrity: sha512-2kkt/7niJ6MgEPxF0bYdQ6etZaA+fQvDcLKckhy1yIQOzaoKjBBjSj63/aLVjYE3qhRt5dvM+uUyfCg6UKCBbA==} @@ -1250,9 +1229,6 @@ packages: '@types/react': 19.2.7 react: '>=16' - '@napi-rs/wasm-runtime@0.2.12': - resolution: {integrity: sha512-ZVWUcfwY4E/yPitQJl481FjFo3K22D6qF0DuFH6Y/nbnE11GY5uguDxZMGXPQ8WQ0128MXQD7TnfHyK4oWoIJQ==} - '@napi-rs/wasm-runtime@1.1.0': resolution: {integrity: sha512-Fq6DJW+Bb5jaWE69/qOE0D1TUN9+6uWhCeZpdnSBk14pjLcCWR7Q8n49PTSPHazM37JqrsdpEthXy2xn6jWWiA==} @@ -1336,34 +1312,6 @@ packages: resolution: {integrity: sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==} engines: {node: '>= 8'} - '@nolyfill/is-core-module@1.0.39': - resolution: {integrity: sha512-nn5ozdjYQpUCZlWGuxcJY/KpxkWQs4DcbMCmKojjyrYDEAGy4Ce19NN4v5MduafTwJlbKc99UA8YhSVqq9yPZA==} - engines: {node: '>=12.4.0'} - - '@npmcli/config@8.3.4': - resolution: {integrity: sha512-01rtHedemDNhUXdicU7s+QYz/3JyV5Naj84cvdXGH4mgCdL+agmSYaLF4LUG4vMCLzhBO8YtS0gPpH1FGvbgAw==} - engines: {node: ^16.14.0 || >=18.0.0} - - '@npmcli/git@5.0.8': - resolution: {integrity: sha512-liASfw5cqhjNW9UFd+ruwwdEf/lbOAQjLL2XY2dFW/bkJheXDYZgOyul/4gVvEV4BWkTXjYGmDqMw9uegdbJNQ==} - engines: {node: ^16.14.0 || >=18.0.0} - - '@npmcli/map-workspaces@3.0.6': - resolution: {integrity: sha512-tkYs0OYnzQm6iIRdfy+LcLBjcKuQCeE5YLb8KnrIlutJfheNaPvPpgoFEyEFgbjzl5PLZ3IA/BWAwRU0eHuQDA==} - engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} - - '@npmcli/name-from-folder@2.0.0': - resolution: {integrity: sha512-pwK+BfEBZJbKdNYpHHRTNBwBoqrN/iIMO0AiGvYsp3Hoaq0WbgGSWQR6SCldZovoDpY3yje5lkFUe6gsDgJ2vg==} - engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} - - '@npmcli/package-json@5.2.1': - resolution: {integrity: sha512-f7zYC6kQautXHvNbLEWgD/uGu1+xCn9izgqBfgItWSx22U0ZDekxN08A1vM8cTxj/cRVe0Q94Ode+tdoYmIOOQ==} - engines: {node: ^16.14.0 || >=18.0.0} - - '@npmcli/promise-spawn@7.0.2': - resolution: {integrity: sha512-xhfYPXoV5Dy4UkY0D+v2KkwvnDfiA/8Mt3sWCGI/hM03NsYIH8ZaG6QzS9x7pje5vHZBZJ2v6VRFVTWACnqcmQ==} - engines: {node: ^16.14.0 || >=18.0.0} - '@oxc-resolver/binding-android-arm-eabi@11.16.0': resolution: {integrity: sha512-/kFX4o8KISHCZzHRs8fBp/wZOPdkhYGquhMP2PQjc8ePAVbtaXXDPAFkjUKhz2jXNPS4jGA1wNW+8grhnJgstw==} cpu: [arm] @@ -1464,10 +1412,6 @@ packages: cpu: [x64] os: [win32] - '@pkgjs/parseargs@0.11.0': - resolution: {integrity: sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==} - engines: {node: '>=14'} - '@pkgr/core@0.2.7': resolution: {integrity: sha512-YLT9Zo3oNPJoBjBc4q8G2mjU4tqIbf5CEOORbUUr48dCD9q3umJ3IPlVqOqDakPfd2HuwccBaqlGhN4Gmr5OWg==} engines: {node: ^12.20.0 || ^14.18.0 || >=16.0.0} @@ -2142,9 +2086,6 @@ packages: cpu: [x64] os: [win32] - '@rtsao/scc@1.1.0': - resolution: {integrity: sha512-zt6OdqaDoOnJ1ZYsCYGt9YmWzDXl4vQdKTyJev62gFhRGKdx7mcT54V9KIjg+d2wi9EXsPvAPKe7i7WjfVWB8g==} - '@standard-schema/spec@1.1.0': resolution: {integrity: sha512-l2aFy5jALhniG5HgqrD6jXLi/rUWrKvqN/qJx6yoJsgKhblVd+iqqU4RCXavm/jPityDo5TCvKMnpjKnOriy0w==} @@ -2272,9 +2213,6 @@ packages: '@types/chai@5.2.3': resolution: {integrity: sha512-Mw558oeA9fFbv65/y4mHtXDs9bPnFMZAL/jxdPFUpOHHIXX91mcgEHbS5Lahr+pwZFR8A7GQleRWeI6cGFC2UA==} - '@types/concat-stream@2.0.3': - resolution: {integrity: sha512-3qe4oQAPNwVNwK4C9c8u+VJqv9kez+2MR4qJpoPFfXtgxxif1QbFusvXzK0/Wra2VX07smostI2VMmJNSpZjuQ==} - '@types/debug@4.1.12': resolution: {integrity: sha512-vIChWdVG3LG1SMxEvI/AK+FWJthlrqlTu7fbrlywTkkaONwk/UAGaULXRlf8vkzFBLVm0zkMdCquhL5aOjhXPQ==} @@ -2299,18 +2237,15 @@ packages: '@types/estree@1.0.8': resolution: {integrity: sha512-dWHzHa2WqEXI/O1E9OjrocMTKJl2mSrEolh1Iomrv6U+JuNwaHXsXx9bLu5gG7BUWFIN0skIQJQ/L1rIex4X6w==} + '@types/hast@2.3.10': + resolution: {integrity: sha512-McWspRw8xx8J9HurkVBfYj0xKoE25tOFlHGdx4MJ5xORQrMGZNqJhVQWaIbm6Oyla5kYOXtDiopzKRJzEOkwJw==} + '@types/hast@3.0.4': resolution: {integrity: sha512-WPs+bbQw5aCj+x6laNGWLH3wviHtoCv/P3+otBhbOhJgG8qtpdAMlTCxLtsTWA7LH1Oh/bFCHsBn0TPS5m30EQ==} - '@types/is-empty@1.2.3': - resolution: {integrity: sha512-4J1l5d79hoIvsrKh5VUKVRA1aIdsOb10Hu5j3J2VfP/msDnfTdGPmNp2E1Wg+vs97Bktzo+MZePFFXSGoykYJw==} - '@types/json-schema@7.0.15': resolution: {integrity: sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA==} - '@types/json5@0.0.29': - resolution: {integrity: sha512-dRLjCWHYg4oaA77cxO64oO+7JwCwnIzkZPdrrC71jQmQtlhM556pwKo5bUzqvZndkVbeFLIIi+9TC40JNF5hNQ==} - '@types/mdast@4.0.4': resolution: {integrity: sha512-kGaNbPh1k7AFzgpud/gMdvIm5xuECykRR+JnWKQno9TAXVa6WIVCGTPvYGekIDL4uwCZQSYbUxNBSb1aUo79oA==} @@ -2323,18 +2258,15 @@ packages: '@types/node@20.19.27': resolution: {integrity: sha512-N2clP5pJhB2YnZJ3PIHFk5RkygRX5WO/5f0WC08tp0wd+sv0rsJk3MqWn3CbNmT2J505a5336jaQj4ph1AdMug==} - '@types/node@22.19.3': - resolution: {integrity: sha512-1N9SBnWYOJTrNZCdh/yJE+t910Y128BoyY+zBLWhL3r0TYzlTmFdXrPwHL9DyFZmlEXNQQolTZh3KHV31QDhyA==} - '@types/node@25.0.3': resolution: {integrity: sha512-W609buLVRVmeW693xKfzHeIV6nJGGz98uCPfeXI1ELMLXVeKYZ9m15fAMSaUPBHYLGFsVRcMmSCksQOrZV9BYA==} + '@types/parse5@6.0.3': + resolution: {integrity: sha512-SuT16Q1K51EAVPz1K29DJ/sXjhSQ0zjvsypYJ6tlwVsRV9jwW5Adq2ch8Dq8kDBCkYnELS7N7VNCSB5nC56t/g==} + '@types/react@19.2.7': resolution: {integrity: sha512-MWtvHrGZLFttgeEj28VXHxpmwYbor/ATPYbBfSFZEIRK0ecCFLl2Qo55z52Hss+UV9CRN7trSeq1zbgx7YDWWg==} - '@types/supports-color@8.1.3': - resolution: {integrity: sha512-Hy6UMpxhE3j1tLpl27exp1XqHD7n8chAiNPzWfz16LPZoMMoSc4dzLl6w9qijkEb/r5O1ozdu1CWGA2L83ZeZg==} - '@types/ungap__structured-clone@1.2.0': resolution: {integrity: sha512-ZoaihZNLeZSxESbk9PUAPZOlSpcKx81I1+4emtULDVmBLkYutTcMlCj2K9VNlf9EWODxdO6gkAqEaLorXwZQVA==} @@ -2409,101 +2341,6 @@ packages: '@ungap/structured-clone@1.2.1': resolution: {integrity: sha512-fEzPV3hSkSMltkw152tJKNARhOupqbH96MZWyRjNaYZOMIzbrTeQDG+MTc6Mr2pgzFQzFxAfmhGDNP5QK++2ZA==} - '@unrs/resolver-binding-android-arm-eabi@1.11.1': - resolution: {integrity: sha512-ppLRUgHVaGRWUx0R0Ut06Mjo9gBaBkg3v/8AxusGLhsIotbBLuRk51rAzqLC8gq6NyyAojEXglNjzf6R948DNw==} - cpu: [arm] - os: [android] - - '@unrs/resolver-binding-android-arm64@1.11.1': - resolution: {integrity: sha512-lCxkVtb4wp1v+EoN+HjIG9cIIzPkX5OtM03pQYkG+U5O/wL53LC4QbIeazgiKqluGeVEeBlZahHalCaBvU1a2g==} - cpu: [arm64] - os: [android] - - '@unrs/resolver-binding-darwin-arm64@1.11.1': - resolution: {integrity: sha512-gPVA1UjRu1Y/IsB/dQEsp2V1pm44Of6+LWvbLc9SDk1c2KhhDRDBUkQCYVWe6f26uJb3fOK8saWMgtX8IrMk3g==} - cpu: [arm64] - os: [darwin] - - '@unrs/resolver-binding-darwin-x64@1.11.1': - resolution: {integrity: sha512-cFzP7rWKd3lZaCsDze07QX1SC24lO8mPty9vdP+YVa3MGdVgPmFc59317b2ioXtgCMKGiCLxJ4HQs62oz6GfRQ==} - cpu: [x64] - os: [darwin] - - '@unrs/resolver-binding-freebsd-x64@1.11.1': - resolution: {integrity: sha512-fqtGgak3zX4DCB6PFpsH5+Kmt/8CIi4Bry4rb1ho6Av2QHTREM+47y282Uqiu3ZRF5IQioJQ5qWRV6jduA+iGw==} - cpu: [x64] - os: [freebsd] - - '@unrs/resolver-binding-linux-arm-gnueabihf@1.11.1': - resolution: {integrity: sha512-u92mvlcYtp9MRKmP+ZvMmtPN34+/3lMHlyMj7wXJDeXxuM0Vgzz0+PPJNsro1m3IZPYChIkn944wW8TYgGKFHw==} - cpu: [arm] - os: [linux] - - '@unrs/resolver-binding-linux-arm-musleabihf@1.11.1': - resolution: {integrity: sha512-cINaoY2z7LVCrfHkIcmvj7osTOtm6VVT16b5oQdS4beibX2SYBwgYLmqhBjA1t51CarSaBuX5YNsWLjsqfW5Cw==} - cpu: [arm] - os: [linux] - - '@unrs/resolver-binding-linux-arm64-gnu@1.11.1': - resolution: {integrity: sha512-34gw7PjDGB9JgePJEmhEqBhWvCiiWCuXsL9hYphDF7crW7UgI05gyBAi6MF58uGcMOiOqSJ2ybEeCvHcq0BCmQ==} - cpu: [arm64] - os: [linux] - - '@unrs/resolver-binding-linux-arm64-musl@1.11.1': - resolution: {integrity: sha512-RyMIx6Uf53hhOtJDIamSbTskA99sPHS96wxVE/bJtePJJtpdKGXO1wY90oRdXuYOGOTuqjT8ACccMc4K6QmT3w==} - cpu: [arm64] - os: [linux] - - '@unrs/resolver-binding-linux-ppc64-gnu@1.11.1': - resolution: {integrity: sha512-D8Vae74A4/a+mZH0FbOkFJL9DSK2R6TFPC9M+jCWYia/q2einCubX10pecpDiTmkJVUH+y8K3BZClycD8nCShA==} - cpu: [ppc64] - os: [linux] - - '@unrs/resolver-binding-linux-riscv64-gnu@1.11.1': - resolution: {integrity: sha512-frxL4OrzOWVVsOc96+V3aqTIQl1O2TjgExV4EKgRY09AJ9leZpEg8Ak9phadbuX0BA4k8U5qtvMSQQGGmaJqcQ==} - cpu: [riscv64] - os: [linux] - - '@unrs/resolver-binding-linux-riscv64-musl@1.11.1': - resolution: {integrity: sha512-mJ5vuDaIZ+l/acv01sHoXfpnyrNKOk/3aDoEdLO/Xtn9HuZlDD6jKxHlkN8ZhWyLJsRBxfv9GYM2utQ1SChKew==} - cpu: [riscv64] - os: [linux] - - '@unrs/resolver-binding-linux-s390x-gnu@1.11.1': - resolution: {integrity: sha512-kELo8ebBVtb9sA7rMe1Cph4QHreByhaZ2QEADd9NzIQsYNQpt9UkM9iqr2lhGr5afh885d/cB5QeTXSbZHTYPg==} - cpu: [s390x] - os: [linux] - - '@unrs/resolver-binding-linux-x64-gnu@1.11.1': - resolution: {integrity: sha512-C3ZAHugKgovV5YvAMsxhq0gtXuwESUKc5MhEtjBpLoHPLYM+iuwSj3lflFwK3DPm68660rZ7G8BMcwSro7hD5w==} - cpu: [x64] - os: [linux] - - '@unrs/resolver-binding-linux-x64-musl@1.11.1': - resolution: {integrity: sha512-rV0YSoyhK2nZ4vEswT/QwqzqQXw5I6CjoaYMOX0TqBlWhojUf8P94mvI7nuJTeaCkkds3QE4+zS8Ko+GdXuZtA==} - cpu: [x64] - os: [linux] - - '@unrs/resolver-binding-wasm32-wasi@1.11.1': - resolution: {integrity: sha512-5u4RkfxJm+Ng7IWgkzi3qrFOvLvQYnPBmjmZQ8+szTK/b31fQCnleNl1GgEt7nIsZRIf5PLhPwT0WM+q45x/UQ==} - engines: {node: '>=14.0.0'} - cpu: [wasm32] - - '@unrs/resolver-binding-win32-arm64-msvc@1.11.1': - resolution: {integrity: sha512-nRcz5Il4ln0kMhfL8S3hLkxI85BXs3o8EYoattsJNdsX4YUU89iOkVn7g0VHSRxFuVMdM4Q1jEpIId1Ihim/Uw==} - cpu: [arm64] - os: [win32] - - '@unrs/resolver-binding-win32-ia32-msvc@1.11.1': - resolution: {integrity: sha512-DCEI6t5i1NmAZp6pFonpD5m7i6aFrpofcp4LA2i8IIq60Jyo28hamKBxNrZcyOwVOZkgsRp9O2sXWBWP8MnvIQ==} - cpu: [ia32] - os: [win32] - - '@unrs/resolver-binding-win32-x64-msvc@1.11.1': - resolution: {integrity: sha512-lrW200hZdbfRtztbygyaq/6jP6AKE8qQN2KvPcJ+x7wiD038YtnYtZ82IMNJ69GJibV7bwL3y9FgK+5w/pYt6g==} - cpu: [x64] - os: [win32] - '@vitejs/plugin-react@5.1.2': resolution: {integrity: sha512-EcA07pHJouywpzsoTUqNh5NwGayl2PPVEJKUSinGGSxFGYn+shYbqMGBg6FXDqgXum9Ou/ecb+411ssw8HImJQ==} engines: {node: ^20.19.0 || >=22.12.0} @@ -2590,10 +2427,6 @@ packages: '@xtuc/long@4.2.2': resolution: {integrity: sha512-NuHqBY1PB/D8xU6s/thBgOAiAP7HOYDQ32+BFZILJ8ivkUkAHQnWfn6WhL79Owj1qmUnoN/YPhktdIoucipkAQ==} - abbrev@2.0.0: - resolution: {integrity: sha512-6/mh1E2u2YgEsCHdY0Yx5oW+61gZU+1vXaoiHHrpKeuRNNgFvS+/jrwHiQhB5apAf5oB7UB7E19ol2R2LKH8hQ==} - engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} - acorn-jsx@5.3.2: resolution: {integrity: sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==} peerDependencies: @@ -2637,14 +2470,6 @@ packages: ajv@8.17.1: resolution: {integrity: sha512-B/gBuNg5SiMTrPkC+A2+cW0RszwxYmn6VYxB/inlBStS5nx6xHIt/ehKRhIMhqusl7a8LjQoZnjCs5vhwxOQ1g==} - ansi-regex@5.0.1: - resolution: {integrity: sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==} - engines: {node: '>=8'} - - ansi-regex@6.1.0: - resolution: {integrity: sha512-7HSX4QQb4CspciLpVFwyRe79O3xsIZDDLER21kERQ71oaPodF8jL725AgJMFAYbooIqolJoRLuM81SpeUkpkvA==} - engines: {node: '>=12'} - ansi-sequence-parser@1.1.1: resolution: {integrity: sha512-vJXt3yiaUL4UU546s3rPXlsry/RnM730G1+HkpKE012AN0sx1eOrxSu95oKDIonskeLTijMgqWZ3uDEe3NFvyg==} @@ -2652,17 +2477,9 @@ packages: resolution: {integrity: sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==} engines: {node: '>=8'} - ansi-styles@6.2.1: - resolution: {integrity: sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==} - engines: {node: '>=12'} - argparse@2.0.1: resolution: {integrity: sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==} - aria-query@5.3.2: - resolution: {integrity: sha512-COROpnaoap1E2F000S62r6A60uHZnmlvomhfyT2DlTcrY1OrBKn2UhH7qn5wTC9zMvD0AY7csdPSNwKP+7WiQw==} - engines: {node: '>= 0.4'} - array-buffer-byte-length@1.0.2: resolution: {integrity: sha512-LHE+8BuR7RYGDKvnrmcuSq3tDcKv9OFEXQt/HpbZhY7V6h0zlUXutnAD82GiFx9rdieCMjkvtcsPqBwgUl1Iiw==} engines: {node: '>= 0.4'} @@ -2675,10 +2492,6 @@ packages: resolution: {integrity: sha512-CVvd6FHg1Z3POpBLxO6E6zr+rSKEQ9L6rZHAaY7lLfhKsWYUBBOuMs0e9o24oopj6H+geRCX0YJ+TJLBK2eHyQ==} engines: {node: '>= 0.4'} - array.prototype.findlastindex@1.2.6: - resolution: {integrity: sha512-F/TKATkzseUExPlfvmwQKGITM3DGTK+vkAsCZoDc5daVygbJBnjEUCbgkAvVFsgfXfX4YIqZ/27G3k3tdXrTxQ==} - engines: {node: '>= 0.4'} - array.prototype.flat@1.3.3: resolution: {integrity: sha512-rwG/ja1neyLqCuGZ5YYrznA62D4mZXg0i1cIskIUKSiqF3Cje9/wXAls9B9s1Wa2fomMsIv8czB8jZcPmxCXFg==} engines: {node: '>= 0.4'} @@ -2699,9 +2512,6 @@ packages: resolution: {integrity: sha512-Izi8RQcffqCeNVgFigKli1ssklIbpHnCYc6AknXGYoB6grJqyeby7jv12JUQgmTAnIDnbck1uxksT4dzN3PWBA==} engines: {node: '>=12'} - ast-types-flow@0.0.8: - resolution: {integrity: sha512-OH/2E5Fg20h2aPrbe+QL8JZQFko0YZaF+j4mnQ7BGhfavO7OpSLa8a0y9sBwomHdSbkhTS8TQNayBfnW5DwbvQ==} - astring@1.9.0: resolution: {integrity: sha512-LElXdjswlqjWrPpJFg1Fx4wpkOCxj1TDHlSV4PlaRxHGWko024xICaa97ZkMfs6DRKlCguiAI+rbXv5GWwXIkg==} hasBin: true @@ -2714,14 +2524,6 @@ packages: resolution: {integrity: sha512-wvUjBtSGN7+7SjNpq/9M2Tg350UZD3q62IFZLbRAR1bSMlCo1ZaeW+BJ+D090e4hIIZLBcTDWe4Mh4jvUDajzQ==} engines: {node: '>= 0.4'} - axe-core@4.11.0: - resolution: {integrity: sha512-ilYanEU8vxxBexpJd8cWM4ElSQq4QctCLKih0TSfjIfCQTeyH/6zVrmIJfLPrKTKJRbiG+cfnZbQIjAlJmF1jQ==} - engines: {node: '>=4'} - - axobject-query@4.1.0: - resolution: {integrity: sha512-qIj0G9wZbMGNLjLmg1PT6v2mE9AH2zlnADJD/2tC6E00hgmhUOfEB6greHPAfLRSufHqROIUTkw6E+M3lH0PTQ==} - engines: {node: '>= 0.4'} - bail@2.0.2: resolution: {integrity: sha512-0xO6mYd7JB2YesxDKplafRpsiOzPt9V02ddPCLbY1xYGPOX24NTyN50qnUxgCPcSoYMhKpAuBTjQoRZCAkUDRw==} @@ -2796,10 +2598,6 @@ packages: resolution: {integrity: sha512-rNjApaLzuwaOTjCiT8lSDdGN1APCiqkChLMJxJPWLunPAt5fy8xgU9/jNOchV84wfIxrA0lRQB7oCT8jrn/wrQ==} engines: {node: '>=6.0'} - ci-info@4.2.0: - resolution: {integrity: sha512-cYY9mypksY8NRqgDB1XD1RiJL338v/551niynFTGkZOO2LHuB2OmOYxDIe/ttN9AHwrqdum1360G3ald0W9kCg==} - engines: {node: '>=8'} - client-only@0.0.1: resolution: {integrity: sha512-IV3Ou0jSMzZrd3pZ48nLkT9DA7Ag1pnPzaiQhpW7c3RbcqqzvzzVu+L8gfqMp/8IM2MQtSiqaCxrrcfu8I8rMA==} @@ -2846,10 +2644,6 @@ packages: concat-map@0.0.1: resolution: {integrity: sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==} - concat-stream@2.0.0: - resolution: {integrity: sha512-MWufYdFw53ccGjCA+Ol7XJYpAlW6/prSMzuPOTRnJGcGzuhLn4Scrz7qf6o8bROZ514ltazcIFJZevcfbo0x7A==} - engines: {'0': node >= 6.0} - convert-source-map@2.0.0: resolution: {integrity: sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==} @@ -2860,9 +2654,6 @@ packages: csstype@3.2.3: resolution: {integrity: sha512-z1HGKcYy2xA8AGQfwrn0PAy+PB7X/GSj3UVJW9qKyn43xWa+gl5nXmU4qqLMRzWVLFC8KusUX8T/0kCiOYpAIQ==} - damerau-levenshtein@1.0.8: - resolution: {integrity: sha512-sdQSFB7+llfUcQHUQO3+B8ERRj0Oa4w9POWMI/puGtuf7gFywGmkaLCElnudfTiKZV+NvHqL0ifzdrI8Ro7ESA==} - data-view-buffer@1.0.2: resolution: {integrity: sha512-EmKO5V3OLXh1rtK2wgXRansaK1/mtVdTUEiEI0W8RkvgT05kfxaH29PliLnpLP73yYO6142Q72QNa8Wx/A5CqQ==} engines: {node: '>= 0.4'} @@ -2881,14 +2672,6 @@ packages: debounce@1.2.1: resolution: {integrity: sha512-XRRe6Glud4rd/ZGQfiV1ruXSfbvfJedlV9Y6zOlP+2K04vBYiJEte6stfFkCP03aMnY5tsipamumUjL14fofug==} - debug@3.2.7: - resolution: {integrity: sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==} - peerDependencies: - supports-color: '*' - peerDependenciesMeta: - supports-color: - optional: true - debug@4.4.0: resolution: {integrity: sha512-6WTZ/IxCY/T6BALoZHaE4ctp9xm+Z5kY/pzYaCHRFeyVhojxlrm+46y68HA6hr0TcwEssoxNiDEUJQjfPZ/RYA==} engines: {node: '>=6.0'} @@ -2963,31 +2746,13 @@ packages: duplexer@0.1.2: resolution: {integrity: sha512-jtD6YG370ZCIi/9GTaJKQxWTZD045+4R4hTk/x1UyoqadyJ9x9CgSi1RlVDQF8U2sxLLSnFkCaMihqljHIWgMg==} - eastasianwidth@0.2.0: - resolution: {integrity: sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==} - electron-to-chromium@1.5.267: resolution: {integrity: sha512-0Drusm6MVRXSOJpGbaSVgcQsuB4hEkMpHXaVstcPmhu5LIedxs1xNK/nIxmQIU/RPC0+1/o0AVZfBTkTNJOdUw==} - emoji-regex@10.4.0: - resolution: {integrity: sha512-EC+0oUMY1Rqm4O6LLrgjtYDvcVYTy7chDnM4Q7030tP4Kwj3u/pR6gP9ygnp2CJMK5Gq+9Q2oqmrFJAz01DXjw==} - - emoji-regex@8.0.0: - resolution: {integrity: sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==} - - emoji-regex@9.2.2: - resolution: {integrity: sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==} - enhanced-resolve@5.18.4: resolution: {integrity: sha512-LgQMM4WXU3QI+SYgEc2liRgznaD5ojbmY3sb8LxyguVkIg5FxdpTkvk72te2R38/TGKxH634oLxXRGY6d7AP+Q==} engines: {node: '>=10.13.0'} - err-code@2.0.3: - resolution: {integrity: sha512-2bmlRpNKBxT/CRmPOlyISQpNj+qSeYvcym/uT0Jx2bMOlKLtSy1ZmLuVxSEKKyor/N5yhvp/ZiG1oE3DEYMSFA==} - - error-ex@1.3.2: - resolution: {integrity: sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==} - es-abstract@1.24.0: resolution: {integrity: sha512-WSzPgsdLtTcQwm4CROfS5ju2Wa1QQcVeT37jFjYzdFz1r9ahadC8B8/a4qxJxM+09F18iumCdRmlr96ZYkQvEg==} engines: {node: '>= 0.4'} @@ -3050,90 +2815,12 @@ packages: resolution: {integrity: sha512-/veY75JbMK4j1yjvuUxuVsiS/hr/4iHs9FTT6cgTexxdE0Ly/glccBAkloH/DofkjRbZU3bnoj38mOmhkZ0lHw==} engines: {node: '>=12'} - eslint-config-next@16.1.0: - resolution: {integrity: sha512-RlPb8E2uO/Ix/w3kizxz6+6ogw99WqtNzTG0ArRZ5NEkIYcsfRb8U0j7aTG7NjRvcrsak5QtUSuxGNN2UcA58g==} - peerDependencies: - eslint: '>=9.0.0' - typescript: '>=3.3.1' - peerDependenciesMeta: - typescript: - optional: true - eslint-config-prettier@10.1.8: resolution: {integrity: sha512-82GZUjRS0p/jganf6q1rEO25VSoHH0hKPCTrgillPjdI/3bgBhAE1QzHrHTizjpRvy6pGAvKjDJtk2pF9NDq8w==} hasBin: true peerDependencies: eslint: '>=7.0.0' - eslint-import-resolver-node@0.3.9: - resolution: {integrity: sha512-WFj2isz22JahUv+B788TlO3N6zL3nNJGU8CcZbPZvVEkBPaJdCV4vy5wyghty5ROFbCRnm132v8BScu5/1BQ8g==} - - eslint-import-resolver-typescript@3.10.1: - resolution: {integrity: sha512-A1rHYb06zjMGAxdLSkN2fXPBwuSaQ0iO5M/hdyS0Ajj1VBaRp0sPD3dn1FhME3c/JluGFbwSxyCfqdSbtQLAHQ==} - engines: {node: ^14.18.0 || >=16.0.0} - peerDependencies: - eslint: '*' - eslint-plugin-import: '*' - eslint-plugin-import-x: '*' - peerDependenciesMeta: - eslint-plugin-import: - optional: true - eslint-plugin-import-x: - optional: true - - eslint-mdx@3.6.2: - resolution: {integrity: sha512-5hczn5iSSEcwtNtVXFwCKIk6iLEDaZpwc3vjYDl/B779OzaAAK/ou16J2xVdO6ecOLEO1WZqp7MRCQ/WsKDUig==} - engines: {node: '>=18.0.0'} - peerDependencies: - eslint: '>=8.0.0' - remark-lint-file-extension: '*' - peerDependenciesMeta: - remark-lint-file-extension: - optional: true - - eslint-module-utils@2.12.1: - resolution: {integrity: sha512-L8jSWTze7K2mTg0vos/RuLRS5soomksDPoJLXIslC7c8Wmut3bx7CPpJijDcBZtxQ5lrbUdM+s0OlNbz0DCDNw==} - engines: {node: '>=4'} - peerDependencies: - '@typescript-eslint/parser': '*' - eslint: '*' - eslint-import-resolver-node: '*' - eslint-import-resolver-typescript: '*' - eslint-import-resolver-webpack: '*' - peerDependenciesMeta: - '@typescript-eslint/parser': - optional: true - eslint: - optional: true - eslint-import-resolver-node: - optional: true - eslint-import-resolver-typescript: - optional: true - eslint-import-resolver-webpack: - optional: true - - eslint-plugin-import@2.32.0: - resolution: {integrity: sha512-whOE1HFo/qJDyX4SnXzP4N6zOWn79WhnCUY/iDR0mPfQZO8wcYE4JClzI2oZrhBnnMUCBCHZhO6VQyoBU95mZA==} - engines: {node: '>=4'} - peerDependencies: - '@typescript-eslint/parser': '*' - eslint: ^2 || ^3 || ^4 || ^5 || ^6 || ^7.2.0 || ^8 || ^9 - peerDependenciesMeta: - '@typescript-eslint/parser': - optional: true - - eslint-plugin-jsx-a11y@6.10.2: - resolution: {integrity: sha512-scB3nz4WmG75pV8+3eRUQOHZlNSUhFNq37xnpgRkCCELU3XMvXAxLk1eqWWyE22Ki4Q01Fnsw9BA3cJHDPgn2Q==} - engines: {node: '>=4.0'} - peerDependencies: - eslint: ^3 || ^4 || ^5 || ^6 || ^7 || ^8 || ^9 - - eslint-plugin-mdx@3.6.2: - resolution: {integrity: sha512-RfMd5HYD/9+cqANhVWJbuBRg3huWUsAoGJNGmPsyiRD2X6BaG6bvt1omyk1ORlg81GK8ST7Ojt5fNAuwWhWU8A==} - engines: {node: '>=18.0.0'} - peerDependencies: - eslint: '>=8.0.0' - eslint-plugin-prettier@5.5.4: resolution: {integrity: sha512-swNtI95SToIz05YINMA6Ox5R057IMAmWZ26GqPxusAp1TZzj+IdY9tXNWWD3vkF/wEqydCONcwjTFpxybBqZsg==} engines: {node: ^14.18.0 || >=16.0.0} @@ -3307,10 +2994,6 @@ packages: resolution: {integrity: sha512-dKx12eRCVIzqCxFGplyFKJMPvLEWgmNtUrpTiJIR5u97zEhRG8ySrtboPHZXx7daLxQVrl643cTzbab2tkQjxg==} engines: {node: '>= 0.4'} - foreground-child@3.3.1: - resolution: {integrity: sha512-gIXjKqtFuWEgzFRJA9WCQeSJLZDjgJUOMCMzxtvFq/37KojM1BFGufqsCy0r4qSQmYLsZYMeyRqzIWOMup03sw==} - engines: {node: '>=14'} - formatly@0.3.0: resolution: {integrity: sha512-9XNj/o4wrRFyhSMJOvsuyMwy8aUfBaZ1VrqHVfohyXf0Sw0e+yfKG+xZaY3arGCOMdwFsqObtzVOc1gU9KiT9w==} engines: {node: '>=18.3.0'} @@ -3361,9 +3044,6 @@ packages: resolution: {integrity: sha512-w9UMqWwJxHNOvoNzSJ2oPF5wvYcvP7jUvYzhp67yEhTi17ZDBBC1z9pTdGuzjD+EFIqLSYRweZjqfiPzQ06Ebg==} engines: {node: '>= 0.4'} - get-tsconfig@4.13.0: - resolution: {integrity: sha512-1VKTZJCwBrvbd+Wn3AOgQP/2Av+TfTCOlE4AcRJE72W1ksZXbAx8PPBR9RzgTeSPzlPMHrbANMH3LbltH73wxQ==} - github-slugger@2.0.0: resolution: {integrity: sha512-IaOQ9puYtjrkq7Y0Ygl9KDZnrf/aiUJYUpVf89y8kyaxbRG7Y1SrX/jaumrv81vc61+kiMempujsM3Yw7w5qcw==} @@ -3378,18 +3058,10 @@ packages: glob-to-regexp@0.4.1: resolution: {integrity: sha512-lkX1HJXwyMcprw/5YUZc2s7DrpAiHB21/V+E1rHUrVNokkvB6bqMzT0VfV6/86ZNabt1k14YOIaT7nDvOX3Iiw==} - glob@10.4.5: - resolution: {integrity: sha512-7Bv8RF0k6xjo7d4A/PxYLbUCfb6c+Vpd2/mB2yRDlew7Jb5hEXiCD9ibfO7wpk8i4sevK6DFny9h7EYbM3/sHg==} - hasBin: true - globals@14.0.0: resolution: {integrity: sha512-oahGvuMGQlPw/ivIYBjVSrWAfWLBeku5tpPE2fOPLi+WHffIWbuh2tCjhyQhTBPMf5E9jDEH4FOmTYgYwbKwtQ==} engines: {node: '>=18'} - globals@16.4.0: - resolution: {integrity: sha512-ob/2LcVVaVGCYN+r14cnwnoDPUufjiYgSqRhiFD0Q1iI4Odora5RE8Iv1D24hAz5oMophRGkGz+yuvQmmUMnMw==} - engines: {node: '>=18'} - globalthis@1.0.4: resolution: {integrity: sha512-DpLKbNU4WylpxJykQujfCcwYWiV/Jhm50Goo0wrVILAv5jOr9d+H+UR3PhSCD2rCCEIg0uc+G+muBTwD54JhDQ==} engines: {node: '>= 0.4'} @@ -3436,45 +3108,70 @@ packages: resolution: {integrity: sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==} engines: {node: '>= 0.4'} + hast-util-from-parse5@7.1.2: + resolution: {integrity: sha512-Nz7FfPBuljzsN3tCQ4kCBKqdNhQE2l0Tn+X1ubgKBPRoiDIu1mL08Cfw4k7q71+Duyaw7DXDN+VTAp4Vh3oCOw==} + + hast-util-heading-rank@2.1.1: + resolution: {integrity: sha512-iAuRp+ESgJoRFJbSyaqsfvJDY6zzmFoEnL1gtz1+U8gKtGGj1p0CVlysuUAUjq95qlZESHINLThwJzNGmgGZxA==} + hast-util-heading-rank@3.0.0: resolution: {integrity: sha512-EJKb8oMUXVHcWZTDepnr+WNbfnXKFNf9duMesmr4S8SXTJBJ9M4Yok08pu9vxdJwdlGRhVumk9mEhkEvKGifwA==} + hast-util-heading@2.0.1: + resolution: {integrity: sha512-nwRggTanShzHRYMUX46lm6pbJ2c1+TUQCETahENb6yR6c8ro8MkE0hRJm8G0IqAZl35ONgJiW8RC8+D3484vYg==} + + hast-util-is-element@2.1.3: + resolution: {integrity: sha512-O1bKah6mhgEq2WtVMk+Ta5K7pPMqsBBlmzysLdcwKVrqzZQ0CHqUPiIVspNhAG1rvxpvJjtGee17XfauZYKqVA==} + hast-util-is-element@3.0.0: resolution: {integrity: sha512-Val9mnv2IWpLbNPqc/pUem+a7Ipj2aHacCwgNfTiK0vJKl0LF+4Ba4+v1oPHFpf3bLYmreq0/l3Gud9S5OH42g==} + hast-util-parse-selector@3.1.1: + resolution: {integrity: sha512-jdlwBjEexy1oGz0aJ2f4GKMaVKkA9jwjr4MjAAI22E5fM/TXVZHuS5OpONtdeIkRKqAaryQ2E9xNQxijoThSZA==} + + hast-util-raw@7.2.3: + resolution: {integrity: sha512-RujVQfVsOrxzPOPSzZFiwofMArbQke6DJjnFfceiEbFh7S05CbPt0cYN+A5YeD3pso0JQk6O1aHBnx9+Pm2uqg==} + hast-util-to-estree@3.1.0: resolution: {integrity: sha512-lfX5g6hqVh9kjS/B9E2gSkvHH4SZNiQFiqWS0x9fENzEl+8W12RqdRxX6d/Cwxi30tPQs3bIO+aolQJNp1bIyw==} + hast-util-to-html@8.0.4: + resolution: {integrity: sha512-4tpQTUOr9BMjtYyNlt0P50mH7xj0Ks2xpo8M943Vykljf99HW6EzulIoJP1N3eKOSScEHzyzi9dm7/cn0RfGwA==} + hast-util-to-jsx-runtime@2.3.2: resolution: {integrity: sha512-1ngXYb+V9UT5h+PxNRa1O1FYguZK/XL+gkeqvp7EdHlB9oHUG0eYRo/vY5inBdcqo3RkPMC58/H94HvkbfGdyg==} + hast-util-to-parse5@7.1.0: + resolution: {integrity: sha512-YNRgAJkH2Jky5ySkIqFXTQiaqcAtJyVE+D5lkN6CdtOqrnkLfGYYrEcKuHOJZlp+MwjSwuD3fZuawI+sic/RBw==} + hast-util-to-string@3.0.1: resolution: {integrity: sha512-XelQVTDWvqcl3axRfI0xSeoVKzyIFPwsAGSLIsKdJKQMXDYJS4WYrBNF/8J7RdhIcFI2BOHgAifggsvsxp/3+A==} + hast-util-whitespace@2.0.1: + resolution: {integrity: sha512-nAxA0v8+vXSBDt3AnRUNjyRIQ0rD+ntpbAp4LnPkumc5M9yUbSMa4XDU9Q6etY4f1Wp4bNgvc1yjiZtsTTrSng==} + hast-util-whitespace@3.0.0: resolution: {integrity: sha512-88JUN06ipLwsnv+dVn+OIYOvAuvBMy/Qoi6O7mQHxdPXpjy+Cd6xRkWwux7DKO+4sYILtLBRIKgsdpS2gQc7qw==} + hastscript@7.2.0: + resolution: {integrity: sha512-TtYPq24IldU8iKoJQqvZOuhi5CyCQRAbvDOX0x1eW6rsHSxa/1i2CCiptNTotGHJ3VoHRGmqiv6/D3q113ikkw==} + hermes-estree@0.25.1: resolution: {integrity: sha512-0wUoCcLp+5Ev5pDW2OriHC2MJCbwLwuRx+gAqMTOkGKJJiBCLjtrvy4PWUGn6MIVefecRpzoOZ/UV6iGdOr+Cw==} hermes-parser@0.25.1: resolution: {integrity: sha512-6pEjquH3rqaI6cYAXYPcz9MS4rY6R4ngRgrgfDshRptUZIc3lw0MCIJIGDj9++mfySOuPTHB4nrSW99BCvOPIA==} - hosted-git-info@7.0.2: - resolution: {integrity: sha512-puUZAUKT5m8Zzvs72XWy3HtvVbTWljRE66cP60bxJzAqf2DgICo7lYTY2IHUmLnNpjYvw5bvmoHvPc0QO2a62w==} - engines: {node: ^16.14.0 || >=18.0.0} - html-escaper@2.0.2: resolution: {integrity: sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg==} + html-void-elements@2.0.1: + resolution: {integrity: sha512-0quDb7s97CfemeJAnW9wC0hw78MtW7NU3hqtCD75g2vFlDLt36llsYD7uB7SUzojLMP24N5IatXf7ylGXiGG9A==} + ignore@5.3.2: resolution: {integrity: sha512-hsBTNUqQTDwkWtcdYI2i06Y/nUBEsNEDJKjWdigLvegy8kDuJAS8uRlpkkcQpyEXL0Z/pjDy5HBmMjRCJ2gq+g==} engines: {node: '>= 4'} - ignore@6.0.2: - resolution: {integrity: sha512-InwqeHHN2XpumIkMvpl/DCJVrAHgCsG5+cn1XlnLWGwtZBm8QJfSusItfrwx81CTp5agNZqpKU2J/ccC5nGT4A==} - engines: {node: '>= 4'} - ignore@7.0.5: resolution: {integrity: sha512-Hs59xBNfUIunMFgWAbGX5cq6893IbWg4KnrjbYwX3tx0ztorVgTDA6B2sxf8ejHJ4wz8BqGUMYlnzNBer5NvGg==} engines: {node: '>= 4'} @@ -3483,20 +3180,10 @@ packages: resolution: {integrity: sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==} engines: {node: '>=6'} - import-meta-resolve@4.1.0: - resolution: {integrity: sha512-I6fiaX09Xivtk+THaMfAwnA3MVA5Big1WHF1Dfx9hFuvNIWpXnorlkzhcQf6ehrqQiiZECRt1poOAkPmer3ruw==} - imurmurhash@0.1.4: resolution: {integrity: sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==} engines: {node: '>=0.8.19'} - inherits@2.0.4: - resolution: {integrity: sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==} - - ini@4.1.3: - resolution: {integrity: sha512-X7rqawQBvfdjS10YU1y1YVreA3SsLrW9dX2CewP2EbBJM4ypVNLDkO5y04gejPwKIY9lR+7r9gn3rFPt/kmWFg==} - engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} - inline-style-parser@0.1.1: resolution: {integrity: sha512-7NXolsK4CAS5+xvdj5OMMbI962hU/wvwoxk+LWR9Ek9bVtyuuYScDN6eS0rUm6TxApFpw7CX1o4uJzcd4AyD3Q==} @@ -3526,9 +3213,6 @@ packages: resolution: {integrity: sha512-DDfANUiiG2wC1qawP66qlTugJeL5HyzMpfr8lLK+jMQirGzNod0B12cFB/9q838Ru27sBwfw78/rdoU7RERz6A==} engines: {node: '>= 0.4'} - is-arrayish@0.2.1: - resolution: {integrity: sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==} - is-arrayish@0.3.4: resolution: {integrity: sha512-m6UrgzFVUYawGBh1dUsWR5M2Clqic9RVXC/9f8ceNlv2IcO9j9J/z8UoCLPqtsPBFNzEpfR3xftohbfqDx8EQA==} @@ -3544,8 +3228,9 @@ packages: resolution: {integrity: sha512-wa56o2/ElJMYqjCjGkXri7it5FbebW5usLw/nPmCMs5DeZ7eziSYZhSmPRn0txqeW4LnAmQQU7FgqLpsEFKM4A==} engines: {node: '>= 0.4'} - is-bun-module@2.0.0: - resolution: {integrity: sha512-gNCGbnnnnFAUGKeZ9PdbyeGYJqewpmc2aKHUEMO5nQPWU9lOmv7jcmQIv+qHD8fXW6W7qfuCwX4rY9LNRjXrkQ==} + is-buffer@2.0.5: + resolution: {integrity: sha512-i2R6zNFDwgEHJyQUtJEk0XFi1i0dPFn/oqjK3/vPCcDeJvW5NQ83V8QbicfF1SupOaB0h8ntgBC2YiE7dfyctQ==} + engines: {node: '>=4'} is-callable@1.2.7: resolution: {integrity: sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA==} @@ -3566,9 +3251,6 @@ packages: is-decimal@2.0.1: resolution: {integrity: sha512-AAB9hiomQs5DXWcRB1rqsxGUstbRroFOPPVAomNk/3XHR5JyEZChOyTWe2oayKnsSsr/kcGqF+z6yuH6HHpN0A==} - is-empty@1.2.0: - resolution: {integrity: sha512-F2FnH/otLNJv0J6wc73A5Xo7oHLNnqplYqZhUu01tD54DIPvxIRSTSLkrUB/M0nHO4vo1O9PDfN4KoTxCzLh/w==} - is-extglob@2.1.1: resolution: {integrity: sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==} engines: {node: '>=0.10.0'} @@ -3577,10 +3259,6 @@ packages: resolution: {integrity: sha512-1pC6N8qWJbWoPtEjgcL2xyhQOP491EQjeUo3qTKcmV8YSDDJrOepfG8pcC7h/QgnQHYSv0mJ3Z/ZWxmatVrysg==} engines: {node: '>= 0.4'} - is-fullwidth-code-point@3.0.0: - resolution: {integrity: sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==} - engines: {node: '>=8'} - is-generator-function@1.1.0: resolution: {integrity: sha512-nPUB5km40q9e8UfN/Zc24eLlzdSf9OfKByBw9CIdw4H1giPMeA0OIJvbchsCu4npfI2QcMVBsGEBHKZ7wLTWmQ==} engines: {node: '>= 0.4'} @@ -3658,17 +3336,10 @@ packages: isexe@2.0.0: resolution: {integrity: sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==} - isexe@3.1.1: - resolution: {integrity: sha512-LpB/54B+/2J5hqQ7imZHfdU31OlgQqx7ZicVlkm9kzg9/w8GKLEcFfJl/t7DCEDueOyBAD6zCCwTO6Fzs0NoEQ==} - engines: {node: '>=16'} - iterator.prototype@1.1.5: resolution: {integrity: sha512-H0dkQoCa3b2VEeKQBOxFph+JAbcrQdE7KC0UkqwpLmv2EC4P41QXP+rqo9wYodACiG5/WM5s9oDApTU8utwj9g==} engines: {node: '>= 0.4'} - jackspeak@3.4.3: - resolution: {integrity: sha512-OGlZQpz2yfahA/Rd1Y8Cd9SIEsqvXkLVoSw/cgwhnhFMDbsQFeZYoJJ7bIZBS9BcamUW96asq/npPWugM+RQBw==} - jest-worker@27.5.1: resolution: {integrity: sha512-7vuh85V5cdDofPyxn58nrPjBktZo0u9x1g8WtjQol+jZDaE+fhN+cIvTj11GndBnMnyfrUOG1sZQxCdjKh+DKg==} engines: {node: '>= 10.13.0'} @@ -3713,10 +3384,6 @@ packages: json-parse-even-better-errors@2.3.1: resolution: {integrity: sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==} - json-parse-even-better-errors@3.0.2: - resolution: {integrity: sha512-fi0NG4bPjCHunUJffmLd0gxssIgkNmArMvis4iNah6Owg1MCJjWhEcDLmsK6iGkJq3tHwbDkTlce70/tmXN4cQ==} - engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} - json-schema-traverse@0.4.1: resolution: {integrity: sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==} @@ -3726,10 +3393,6 @@ packages: json-stable-stringify-without-jsonify@1.0.1: resolution: {integrity: sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==} - json5@1.0.2: - resolution: {integrity: sha512-g1MWMLBiz8FKi1e4w0UyVL3w+iJceWAFBAaBnnGKOpNa5f8TLktkbre1+s6oICydWAm+HRUGTmI+//xv2hvXYA==} - hasBin: true - json5@2.2.3: resolution: {integrity: sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==} engines: {node: '>=6'} @@ -3742,10 +3405,6 @@ packages: keyv@4.5.4: resolution: {integrity: sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw==} - kleur@4.1.5: - resolution: {integrity: sha512-o+NO+8WrRiQEE4/7nwRJhN1HWpVmJm511pBHUxPLtp0BUISzlBplORYSmTclCnJvQq2tKu/sgl3xVpkc7ZWuQQ==} - engines: {node: '>=6'} - knip@5.75.2: resolution: {integrity: sha512-ZSO9gGKG/RztUYawrMbPTqO9VG3qvTW/ddINJqYM+N+9F/0bX6HEBolo8+HKaBuTIgyM4dn2rZ8M+JLObRdzog==} engines: {node: '>=18.18.0'} @@ -3754,13 +3413,6 @@ packages: '@types/node': '>=18' typescript: '>=5.0.4 <7' - language-subtag-registry@0.3.23: - resolution: {integrity: sha512-0K65Lea881pHotoGEa5gDlMxt3pctLi2RplBb7Ezh4rRdLEOtgi7n4EwK9lamnUCkKBqaeKRVebTq6BAxSkpXQ==} - - language-tags@1.0.9: - resolution: {integrity: sha512-MbjN408fEndfiQXbFQ1vnd+1NoLDsnQW41410oQBXiyXDMYH5z505juWa4KUE1LqxRC7DgOgZDbKLxHIwm27hA==} - engines: {node: '>=0.10'} - levn@0.4.1: resolution: {integrity: sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==} engines: {node: '>= 0.8.0'} @@ -3835,13 +3487,6 @@ packages: resolution: {integrity: sha512-utfs7Pr5uJyyvDETitgsaqSyjCb2qNRAtuqUeWIAKztsOYdcACf2KtARYXg2pSvhkt+9NfoaNY7fxjl6nuMjIQ==} engines: {node: '>= 12.0.0'} - lines-and-columns@2.0.4: - resolution: {integrity: sha512-wM1+Z03eypVAVUCE7QdSqpVIvelbOakn1M0bPDoA4SGWPx3sNDVUiMo3L6To6WWGClB7VyXnhQ4Sn7gxiJbE6A==} - engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} - - load-plugin@6.0.3: - resolution: {integrity: sha512-kc0X2FEUZr145odl68frm+lMJuQ23+rTXYmR6TImqPtbpmXC4vVXbWKDQ9IzndA0HfyQamWfKLhzsqGSTxE63w==} - loader-runner@4.3.1: resolution: {integrity: sha512-IWqP2SCPhyVFTBtRcgMHdzlf9ul25NwaFx4wCEH/KjAXuuHY4yNjvPXsBokp8jCB936PyWRaPKUNh8NvylLp2Q==} engines: {node: '>=6.11.5'} @@ -3860,9 +3505,6 @@ packages: resolution: {integrity: sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==} hasBin: true - lru-cache@10.4.3: - resolution: {integrity: sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ==} - lru-cache@5.1.1: resolution: {integrity: sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==} @@ -4073,10 +3715,6 @@ packages: minimist@1.2.8: resolution: {integrity: sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==} - minipass@7.1.2: - resolution: {integrity: sha512-qOOzS1cBTWYF4BH8fVePDBOO9iptMnGUEZwNc/cMWnTV2nVLZ7VoNWEPHkYczZA0pdoA7dl6e7FL659nX9S2aw==} - engines: {node: '>=16 || 14 >=14.17'} - motion-dom@12.23.23: resolution: {integrity: sha512-n5yolOs0TQQBRUFImrRfs/+6X4p3Q4n1dUEqt/H58Vx7OW6RF+foWEgmTVDhIWJIMXOuNNL0apKH2S16en9eiA==} @@ -4097,10 +3735,6 @@ packages: react-dom: optional: true - mri@1.2.0: - resolution: {integrity: sha512-tzzskb3bG8LvYGFF/mDTpq3jpI6Q9wc3LEmBaghu+DdCssd1FakN7Bc0hVNmEyGq1bq3RgfkCb3cmQLpNPOroA==} - engines: {node: '>=4'} - mrmime@2.0.1: resolution: {integrity: sha512-Y3wQdFg2Va6etvQ5I82yUhGdsKrcYox6p7FfL1LbK2J4V01F9TGlepTIhnK24t7koZibmg82KGglhA1XK5IsLQ==} engines: {node: '>=10'} @@ -4113,11 +3747,6 @@ packages: engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1} hasBin: true - napi-postinstall@0.3.4: - resolution: {integrity: sha512-PHI5f1O0EP5xJ9gQmFGMS6IZcrVvTjpXjz7Na41gTE7eE2hK11lg04CECCYEEjdc17EV4DO+fkGEtt7TpTaTiQ==} - engines: {node: ^12.20.0 || ^14.18.0 || >=16.0.0} - hasBin: true - natural-compare@1.4.0: resolution: {integrity: sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==} @@ -4154,31 +3783,6 @@ packages: node-releases@2.0.27: resolution: {integrity: sha512-nmh3lCkYZ3grZvqcCH+fjmQ7X+H0OeZgP40OierEaAptX4XofMh5kwNbWh7lBduUzCcV/8kZ+NDLCwm2iorIlA==} - nopt@7.2.1: - resolution: {integrity: sha512-taM24ViiimT/XntxbPyJQzCG+p4EKOpgD3mxFwW38mGjVUrfERQOeY4EDHjdnptttfHuHQXFx+lTP08Q+mLa/w==} - engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} - hasBin: true - - normalize-package-data@6.0.2: - resolution: {integrity: sha512-V6gygoYb/5EmNI+MEGrWkC+e6+Rr7mTmfHrxDbLzxQogBkgzo76rkok0Am6thgSF7Mv2nLOajAJj5vDJZEFn7g==} - engines: {node: ^16.14.0 || >=18.0.0} - - npm-install-checks@6.3.0: - resolution: {integrity: sha512-W29RiK/xtpCGqn6f3ixfRYGk+zRyr+Ew9F2E20BfXxT5/euLdA/Nm7fO7OeTGuAmTs30cpgInyJ0cYe708YTZw==} - engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} - - npm-normalize-package-bin@3.0.1: - resolution: {integrity: sha512-dMxCf+zZ+3zeQZXKxmyuCKlIDPGuv8EF940xbkC4kQVDTtqoh6rJFO+JTKSA6/Rwi0getWmtuy4Itup0AMcaDQ==} - engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} - - npm-package-arg@11.0.3: - resolution: {integrity: sha512-sHGJy8sOC1YraBywpzQlIKBE4pBbGbiF95U6Auspzyem956E0+FtDtsx1ZxlOJkQCZ1AFXAY/yuvtFYrOxF+Bw==} - engines: {node: ^16.14.0 || >=18.0.0} - - npm-pick-manifest@9.1.0: - resolution: {integrity: sha512-nkc+3pIIhqHVQr085X9d2JzPzLyjzQS96zbruppqC9aZRm/x8xx6xhI98gHtsfELP2bE+loHq8ZaHFHhe+NauA==} - engines: {node: ^16.14.0 || >=18.0.0} - object-assign@4.1.1: resolution: {integrity: sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==} engines: {node: '>=0.10.0'} @@ -4203,10 +3807,6 @@ packages: resolution: {integrity: sha512-k6E21FzySsSK5a21KRADBd/NGneRegFO5pLHfdQLpRDETUNJueLXs3WCzyQ3tFRDYgbq3KHGXfTbi2bs8WQ6rQ==} engines: {node: '>= 0.4'} - object.groupby@1.0.3: - resolution: {integrity: sha512-+Lhy3TQTuzXI5hevh8sBGqbmurHbbIjAi0Z4S63nthVLmLxfbj4T54a4CfZrXIrt9iP4mVAPYMo/v99taj3wjQ==} - engines: {node: '>= 0.4'} - object.values@1.2.1: resolution: {integrity: sha512-gXah6aZrcUxjWg2zR2MwouP2eHlCBzdV4pygudehaKXSGW4v2AsRQUK+lwwXhii6KFZcunEnmSUoYp5CXibxtA==} engines: {node: '>= 0.4'} @@ -4237,9 +3837,6 @@ packages: resolution: {integrity: sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==} engines: {node: '>=10'} - package-json-from-dist@1.0.1: - resolution: {integrity: sha512-UEZIS3/by4OC8vL3P2dTXRETpebLI2NiI5vIrjaD/5UtrkFX/tNbwjTSRAGC/+7CAo2pIcBaRgWmcBBHcsaCIw==} - parent-module@1.0.1: resolution: {integrity: sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==} engines: {node: '>=6'} @@ -4247,9 +3844,8 @@ packages: parse-entities@4.0.2: resolution: {integrity: sha512-GG2AQYWoLgL877gQIKeRPGO1xF9+eG1ujIb5soS5gPvLQ1y2o8FL90w2QWNdf9I361Mpp7726c+lj3U0qK1uGw==} - parse-json@7.1.1: - resolution: {integrity: sha512-SgOTCX/EZXtZxBE5eJ97P4yGM5n37BwRU+YMsH4vNzFqJV/oWFXXCmwFlgWUM4PrakybVOueJJ6pwHqSVhTFDw==} - engines: {node: '>=16'} + parse5@6.0.1: + resolution: {integrity: sha512-Ofn/CTFzRGTTxwpNEs9PP93gXShHcTq255nzRYSKe8AkVpZY7e1fpmTfOyoIvjP5HG7Z2ZM7VS9PPhQGW2pOpw==} path-exists@4.0.0: resolution: {integrity: sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==} @@ -4262,10 +3858,6 @@ packages: path-parse@1.0.7: resolution: {integrity: sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==} - path-scurry@1.11.1: - resolution: {integrity: sha512-Xa4Nw17FS9ApQFJ9umLiJS4orGjm7ZzwUrwamcGQuHSzDyth9boKDaycYdDcZDuqYATXw4HFXgaqWTctW/v1HA==} - engines: {node: '>=16 || 14 >=14.18'} - pathe@2.0.3: resolution: {integrity: sha512-WUjGcAqP1gQacoQe+OBJsFA7Ld4DyXuUIjZ5cc75cLHvJ7dtNsTugphxIADwspS+AraAUePCKrSVtPLFj/F88w==} @@ -4305,22 +3897,6 @@ packages: engines: {node: '>=14'} hasBin: true - proc-log@4.2.0: - resolution: {integrity: sha512-g8+OnU/L2v+wyiVK+D5fA34J7EH8jZ8DDlvwhRCMxmMj7UCBvxiO1mGeN+36JXIKF4zevU4kRBd8lVgG9vLelA==} - engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} - - promise-inflight@1.0.1: - resolution: {integrity: sha512-6zWPyEOFaQBJYcGMHBKTKJ3u6TBsnMFOIZSa6ce1e/ZrrsOlnHRHbabMjLiBYKp+n44X9eUI6VUPaukCXHuG4g==} - peerDependencies: - bluebird: '*' - peerDependenciesMeta: - bluebird: - optional: true - - promise-retry@2.0.1: - resolution: {integrity: sha512-y+WKFlBR8BGXnsNlIHFGPZmyDf3DFMoLhaflAnyZgV6rG6xu+JwesTo2Q9R6XwYmtmwAFCkAk3e35jEdoeh/3g==} - engines: {node: '>=10'} - prop-types@15.8.1: resolution: {integrity: sha512-oj87CgZICdulUohogVAR7AjlC0327U4el4L6eAvOqCeudMDVU0NThNaV+b9Df4dXgSP1gXMTnPdhfe/2qDH5cg==} @@ -4355,23 +3931,10 @@ packages: peerDependencies: react: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 - react-wrap-balancer@1.1.1: - resolution: {integrity: sha512-AB+l7FPRWl6uZ28VcJ8skkwLn2+UC62bjiw8tQUrZPlEWDVnR9MG0lghyn7EyxuJSsFEpht4G+yh2WikEqQ/5Q==} - peerDependencies: - react: '>=16.8.0 || ^17.0.0 || ^18' - react@19.2.3: resolution: {integrity: sha512-Ku/hhYbVjOQnXDZFv2+RibmLFGwFdeeKHFcOTlrt7xplBnya5OGn/hIRDsqDiSUcfORsDC7MPxwork8jBwsIWA==} engines: {node: '>=0.10.0'} - read-package-json-fast@3.0.2: - resolution: {integrity: sha512-0J+Msgym3vrLOUB3hzQCuZHII0xkNGCtz/HJH9xZshwv9DbDwkw1KaE3gx/e2J5rpEY5rtOy6cyhKOPrkP7FZw==} - engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} - - readable-stream@3.6.2: - resolution: {integrity: sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==} - engines: {node: '>= 6'} - recma-build-jsx@1.0.0: resolution: {integrity: sha512-8GtdyqaBcDfva+GUKDr3nev3VpKAhup1+RvkMvUxURHpW7QyIvk9F5wz7Vzo06CEMSilw6uArgRqhpiUcWp8ew==} @@ -4395,12 +3958,21 @@ packages: rehype-autolink-headings@7.1.0: resolution: {integrity: sha512-rItO/pSdvnvsP4QRB1pmPiNHUskikqtPojZKJPPPAVx9Hj8i8TwMBhofrrAYRhYOOBZH9tgmG5lPqDLuIWPWmw==} + rehype-parse@8.0.5: + resolution: {integrity: sha512-Ds3RglaY/+clEX2U2mHflt7NlMA72KspZ0JLUJgBBLpRddBcEw3H8uYZQliQriku22NZpYMfjDdSgHcjxue24A==} + rehype-recma@1.0.0: resolution: {integrity: sha512-lqA4rGUf1JmacCNWWZx0Wv1dHqMwxzsDWYMTowuplHF3xH0N/MmrZ/G3BDZnzAkRmxDadujCjaKM2hqYdCBOGw==} rehype-slug@6.0.0: resolution: {integrity: sha512-lWyvf/jwu+oS5+hL5eClVd3hNdmwM1kAC0BUvEGD19pajQMIzcNUd/k9GsfQ+FfECvX+JE+e9/btsKH0EjJT6A==} + rehype-stringify@9.0.4: + resolution: {integrity: sha512-Uk5xu1YKdqobe5XpSskwPvo1XeHUUucWEQSl8hTrXt5selvca1e8K1EZ37E6YoZ4BT8BCqCdVfQW7OfHfthtVQ==} + + rehype@12.0.1: + resolution: {integrity: sha512-ey6kAqwLM3X6QnMDILJthGvG1m1ULROS9NT4uG9IDCuv08SFyLlreSuvOa//DgEvbXx62DS6elGVqusWhRUbgw==} + remark-gfm@4.0.1: resolution: {integrity: sha512-1quofZ2RQ9EWdeN34S79+KExV1764+wCUGop5CPL1WGdD0ocPpu91lzPGbwWMECpEpd42kJGQwzRfyov9j4yNg==} @@ -4427,22 +3999,10 @@ packages: resolution: {integrity: sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==} engines: {node: '>=4'} - resolve-pkg-maps@1.0.0: - resolution: {integrity: sha512-seS2Tj26TBVOC2NIc2rOe2y2ZO7efxITtLZcGSOnHHNOQ7CkiUBfw0Iw2ck6xkIhPwLhKNLS8BO+hEpngQlqzw==} - - resolve@1.22.11: - resolution: {integrity: sha512-RfqAvLnMl313r7c9oclB1HhUEAezcpLjz95wFH4LVuhk9JF/r22qmVP9AMmOU4vMX7Q8pN8jwNg/CSpdFnMjTQ==} - engines: {node: '>= 0.4'} - hasBin: true - resolve@2.0.0-next.5: resolution: {integrity: sha512-U7WjGVG9sH8tvjW5SmGbQuui75FiyjAX72HX15DwBBwF9dNiQZRQAg9nnPhYy+TUnE0+VcrttuvNI8oSxZcocA==} hasBin: true - retry@0.12.0: - resolution: {integrity: sha512-9LkiTwjUh6rT555DtE9rTX+BKByPfrMzEAtnlEtdEwr3Nkffwiihqe2bWADg+OQRjt9gl6ICdmB/ZFDCGAtSow==} - engines: {node: '>= 4'} - reusify@1.1.0: resolution: {integrity: sha512-g6QUff04oZpHs0eG5p83rFLhHeV00ug/Yf9nZM6fLeUrPguBTkTQOdpAWWspMh55TZfVQDPaN3NQJfbVRAxdIw==} engines: {iojs: '>=1.0.0', node: '>=0.10.0'} @@ -4455,10 +4015,6 @@ packages: run-parallel@1.2.0: resolution: {integrity: sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==} - sade@1.8.1: - resolution: {integrity: sha512-xal3CZX1Xlo/k4ApwCFrHVACi9fBqJ7V+mwhBsuf/1IOKbBy098Fex+Wa/5QMubw09pSZ/u8EY8PWgevJsXp1A==} - engines: {node: '>=6'} - safe-array-concat@1.1.3: resolution: {integrity: sha512-AURm5f0jYEOydBj7VQlVvDrjeFgthDdEF5H1dP+6mNpoXOMo1quQqJ4wvJDyRZ9+pO3kGWoOdmV08cSv2aJV6Q==} engines: {node: '>=0.4'} @@ -4543,10 +4099,6 @@ packages: siginfo@2.0.0: resolution: {integrity: sha512-ybx0WO1/8bSBLEWXZvEd7gMW3Sn3JFlW3TvX1nREbDLRNQNaeNN8WK0meBwPdAaOI7TtRRRJn/Es1zhrrCHu7g==} - signal-exit@4.1.0: - resolution: {integrity: sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==} - engines: {node: '>=14'} - simple-swizzle@0.2.4: resolution: {integrity: sha512-nAu1WFPQSMNr2Zn9PGSZK9AGn4t/y97lEm+MXTtUDwfP0ksAIX4nO+6ruD9Jwut4C49SB1Ws+fbXsm/yScWOHw==} @@ -4580,21 +4132,6 @@ packages: space-separated-tokens@2.0.2: resolution: {integrity: sha512-PEGlAwrG8yXGXRjW32fGbg66JAlOAwbObuqVoJpv/mRgoWDQfgH1wDPvtzWyUSNAXBGSk8h755YDbbcEy3SH2Q==} - spdx-correct@3.2.0: - resolution: {integrity: sha512-kN9dJbvnySHULIluDHy32WHRUu3Og7B9sbY7tsFLctQkIqnMh3hErYgdMjTYuqmcXX+lK5T1lnUt3G7zNswmZA==} - - spdx-exceptions@2.5.0: - resolution: {integrity: sha512-PiU42r+xO4UbUS1buo3LPJkjlO7430Xn5SVAhdpzzsPHsjbYVflnnFdATgabnLude+Cqu25p6N+g2lw/PFsa4w==} - - spdx-expression-parse@3.0.1: - resolution: {integrity: sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q==} - - spdx-license-ids@3.0.21: - resolution: {integrity: sha512-Bvg/8F5XephndSK3JffaRqdT+gyhfqIPwDHpX80tJrF8QQRYMo8sNMeaZ2Dp5+jhwKnUmIOyFFQfHRkjJm5nXg==} - - stable-hash@0.0.5: - resolution: {integrity: sha512-+L3ccpzibovGXFK+Ap/f8LOS0ahMrHTf3xu7mMLSpEGU0EO9ucaysSylKo9eRDFNhWve/y275iPmIZ4z39a9iA==} - stackback@0.0.2: resolution: {integrity: sha512-1XMJE5fQo1jGH6Y/7ebnwPOBEkIEnT4QF32d5R1+VXdXveM0IBMJt8zfaxX1P3QhVwrYe+576+jkANtSS2mBbw==} @@ -4605,25 +4142,9 @@ packages: resolution: {integrity: sha512-eLoXW/DHyl62zxY4SCaIgnRhuMr6ri4juEYARS8E6sCEqzKpOiE521Ucofdx+KnDZl5xmvGYaaKCk5FEOxJCoQ==} engines: {node: '>= 0.4'} - string-width@4.2.3: - resolution: {integrity: sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==} - engines: {node: '>=8'} - - string-width@5.1.2: - resolution: {integrity: sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==} - engines: {node: '>=12'} - - string-width@6.1.0: - resolution: {integrity: sha512-k01swCJAgQmuADB0YIc+7TuatfNvTBVOoaUWJjTB9R4VJzR5vNWzf5t42ESVZFPS8xTySF7CAdV4t/aaIm3UnQ==} - engines: {node: '>=16'} - - string.prototype.includes@2.0.1: - resolution: {integrity: sha512-o7+c9bW6zpAdJHTtujeePODAhkuicdAryFsfVKwA+wGw89wJ4GTY484WTucM9hLtDEOpOvI+aHnzqnC5lHp4Rg==} - engines: {node: '>= 0.4'} - - string.prototype.matchall@4.0.12: - resolution: {integrity: sha512-6CC9uyBL+/48dYizRf7H7VAYCMCNTBeM78x/VTUe9bFEaxBepPJDa1Ow99LqI/1yF7kuy7Q3cQsYMrcjGUcskA==} - engines: {node: '>= 0.4'} + string.prototype.matchall@4.0.12: + resolution: {integrity: sha512-6CC9uyBL+/48dYizRf7H7VAYCMCNTBeM78x/VTUe9bFEaxBepPJDa1Ow99LqI/1yF7kuy7Q3cQsYMrcjGUcskA==} + engines: {node: '>= 0.4'} string.prototype.repeat@1.0.0: resolution: {integrity: sha512-0u/TldDbKD8bFCQ/4f5+mNRrXwZ8hg2w7ZR8wa16e8z9XpePWl3eGEcUD0OXpEH/VJH/2G3gjUtR3ZOiBe2S/w==} @@ -4640,24 +4161,9 @@ packages: resolution: {integrity: sha512-UXSH262CSZY1tfu3G3Secr6uGLCFVPMhIqHjlgCUtCCcgihYc/xKs9djMTMUOb2j1mVSeU8EU6NWc/iQKU6Gfg==} engines: {node: '>= 0.4'} - string_decoder@1.3.0: - resolution: {integrity: sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==} - 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'} - - strip-ansi@7.1.0: - resolution: {integrity: sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==} - engines: {node: '>=12'} - - strip-bom@3.0.0: - resolution: {integrity: sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA==} - engines: {node: '>=4'} - strip-json-comments@3.1.1: resolution: {integrity: sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==} engines: {node: '>=8'} @@ -4693,10 +4199,6 @@ packages: resolution: {integrity: sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==} engines: {node: '>=10'} - supports-color@9.4.0: - resolution: {integrity: sha512-VL+lNrEoIXww1coLPOmiEmK/0sGigko5COxI09KzHc2VJXJsQ37UaQ+8quuxjDeA7+KnLGTWRyOXSLLR2Wb4jw==} - engines: {node: '>=12'} - supports-preserve-symlinks-flag@1.0.0: resolution: {integrity: sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==} engines: {node: '>= 0.4'} @@ -4781,9 +4283,6 @@ packages: peerDependencies: typescript: '>=4.8.4' - tsconfig-paths@3.15.0: - resolution: {integrity: sha512-2Ac2RgzDe/cn48GvOe3M+o82pEFewD3UPbyoUHHdKasHwJKjds4fLXWf/Ux5kATBKN20oaFGu+jbElp1pos0mg==} - tslib@2.8.1: resolution: {integrity: sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==} @@ -4791,10 +4290,6 @@ packages: resolution: {integrity: sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==} engines: {node: '>= 0.8.0'} - type-fest@3.13.1: - resolution: {integrity: sha512-tLq3bSNx+xSpwvAJnzrK0Ep5CLNWjvFTOp71URMaAEWBfRb9nnJiBoUe0tF8bI4ZFO3omgBR6NvnbzVUT3Ly4g==} - engines: {node: '>=14.16'} - typed-array-buffer@1.0.3: resolution: {integrity: sha512-nAYYwfY3qnzX30IkA6AQZjVbtK6duGontcQm1WSG1MD94YLqK0515GNApXkoxKOWMusVssAHWLh9SeaoefYFGw==} engines: {node: '>= 0.4'} @@ -4811,9 +4306,6 @@ packages: resolution: {integrity: sha512-3KS2b+kL7fsuk/eJZ7EQdnEmQoaho/r6KUef7hxvltNA5DR8NAUM+8wJMbJyZ4G9/7i3v5zPBIMN5aybAh2/Jg==} engines: {node: '>= 0.4'} - typedarray@0.0.6: - resolution: {integrity: sha512-/aCDEGatGvZ2BIk+HmLf4ifCJFwvKFNb9/JeZPMulfgFracn9QFcAf5GO8B/mweUjSoblS5In0cWhqpfs/5PQA==} - typescript-eslint@8.50.0: resolution: {integrity: sha512-Q1/6yNUmCpH94fbgMUMg2/BSAr/6U7GBk61kZTv1/asghQOWOjTlp9K8mixS5NcJmm2creY+UFfGeW/+OcA64A==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} @@ -4836,14 +4328,14 @@ packages: undici-types@7.16.0: resolution: {integrity: sha512-Zz+aZWSj8LE6zoxD+xrjh4VfkIG8Ya6LvYkZqtUQGJPZjYl53ypCaUwWqo7eI0x66KBGeRo+mlBEkMSeSZ38Nw==} - unified-engine@11.2.2: - resolution: {integrity: sha512-15g/gWE7qQl9tQ3nAEbMd5h9HV1EACtFs6N9xaRBZICoCwnNGbal1kOs++ICf4aiTdItZxU2s/kYWhW7htlqJg==} + unified@10.1.2: + resolution: {integrity: sha512-pUSWAi/RAnVy1Pif2kAoeWNBa3JVrx0MId2LASj8G+7AiHWoKZNTomq6LG326T68U7/e263X6fTdcXIy7XnF7Q==} unified@11.0.5: resolution: {integrity: sha512-xKvGhPWw3k84Qjh8bI3ZeJjqnyadK+GEFtazSfZv/rKeTkTjOJho6mFqh2SM96iIcZokxiOpg78GazTSg8+KHA==} - unist-util-inspect@8.1.0: - resolution: {integrity: sha512-mOlg8Mp33pR0eeFpo5d2902ojqFFOKMMG2hF8bmH7ZlhnmjFgh0NI3/ZDwdaBJNbvrS7LZFVrBVtIE9KZ9s7vQ==} + unist-util-is@5.2.1: + resolution: {integrity: sha512-u9njyyfEh43npf1M+yGKDGVPbY/JWEemg5nH05ncKPfi+kBbKBJoTdsogMu33uhytuLlv9y0O7GH7fEdwLdLQw==} unist-util-is@6.0.0: resolution: {integrity: sha512-2qCTHimwdxLfz+YzdGfkqNlH0tLi9xjTnHddPmJwtIG9MGsdbutfTc4P+haPD7l7Cjxf/WZj+we5qfVPvvxfYw==} @@ -4851,21 +4343,30 @@ packages: unist-util-position-from-estree@2.0.0: resolution: {integrity: sha512-KaFVRjoqLyF6YXCbVLNad/eS4+OfPQQn2yOd7zF/h5T/CSL2v8NpN6a5TPvtbXthAGw5nG+PuTtq+DdIZr+cRQ==} + unist-util-position@4.0.4: + resolution: {integrity: sha512-kUBE91efOWfIVBo8xzh/uZQ7p9ffYRtUbMRZBNFYwf0RK8koUMx6dGUfwylLOKmaT2cs4wSW96QoYUSXAyEtpg==} + unist-util-position@5.0.0: resolution: {integrity: sha512-fucsC7HjXvkB5R3kTCO7kUjRdrS0BJt3M/FPxmHMBOm8JQi2BsHAHFsy27E0EolP8rp0NzXsJ+jNPyDWvOJZPA==} + unist-util-stringify-position@3.0.3: + resolution: {integrity: sha512-k5GzIBZ/QatR8N5X2y+drfpWG8IDBzdnVj6OInRNWm1oXrzydiaAT2OQiA8DPRRZyAKb9b6I2a6PxYklZD0gKg==} + unist-util-stringify-position@4.0.0: resolution: {integrity: sha512-0ASV06AAoKCDkS2+xw5RXJywruurpbC4JZSm7nr7MOt1ojAzvyyaO+UxZf18j8FCF6kmzCZKcAgN/yu2gm2XgQ==} + unist-util-visit-parents@5.1.3: + resolution: {integrity: sha512-x6+y8g7wWMyQhL1iZfhIPhDAs7Xwbn9nRosDXl7qoPTSCy0yNxnKc+hWokFifWQIDGi154rdUqKvbCa4+1kLhg==} + unist-util-visit-parents@6.0.1: resolution: {integrity: sha512-L/PqWzfTP9lzzEa6CKs0k2nARxTdZduw3zyh8d2NVBnsyvHjSX4TWse388YrrQKbvI8w20fGjGlhgT96WwKykw==} + unist-util-visit@4.1.2: + resolution: {integrity: sha512-MSd8OUGISqHdVvfY9TPhyK2VdUrPgxkUtWSuMHF6XAAFuL4LokseigBnZtPnJMu+FbynTkFNnFlyjxpVKujMRg==} + unist-util-visit@5.0.0: resolution: {integrity: sha512-MR04uvD+07cwl/yhVuVWAtw+3GOR/knlL55Nd/wAdblk27GCVt3lqpTivy/tkJcZoNPzTwS1Y+KMojlLDhoTzg==} - unrs-resolver@1.11.1: - resolution: {integrity: sha512-bSjt9pjaEBnNiGgc9rUiHGKv5l4/TGzDmYw3RhnkJGtLhbnnA/5qJj7x3dNDCRx/PJxu774LlH8lCOlB4hEfKg==} - update-browserslist-db@1.2.3: resolution: {integrity: sha512-Js0m9cx+qOgDxo0eMiFGEueWztz+d4+M3rGlmKPT+T4IS/jP4ylw3Nwpu6cpTTP8R1MAC1kF4VbdLt3ARf209w==} hasBin: true @@ -4907,32 +4408,17 @@ packages: peerDependencies: react: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 - util-deprecate@1.0.2: - resolution: {integrity: sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==} - - uvu@0.5.6: - resolution: {integrity: sha512-+g8ENReyr8YsOc6fv/NVJs2vFdHBnBNdfE49rshrTzDWOlUx4Gq7KOS2GD8eqhy2j+Ejq29+SbKH8yjkAqXqoA==} - engines: {node: '>=8'} - hasBin: true + vfile-location@4.1.0: + resolution: {integrity: sha512-YF23YMyASIIJXpktBa4vIGLJ5Gs88UB/XePgqPmTa7cDA+JeO3yclbpheQYCHjVHBn/yePzrXuygIL+xbvRYHw==} - validate-npm-package-license@3.0.4: - resolution: {integrity: sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew==} - - validate-npm-package-name@5.0.1: - resolution: {integrity: sha512-OljLrQ9SQdOUqTaQxqL5dEfZWrXExyyWsozYlAWFawPVNuD83igl7uJD2RTkNMbniIYgt8l81eCJGIdQF7avLQ==} - engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} + vfile-message@3.1.4: + resolution: {integrity: sha512-fa0Z6P8HUrQN4BZaX05SIVXic+7kE3b05PWAtPuYP9QLHsLKYR7/AlLW3NtOrpXRLeawpDLMsVkmk5DG0NXgWw==} vfile-message@4.0.2: resolution: {integrity: sha512-jRDZ1IMLttGj41KcZvlrYAaI3CfqpLpfpf+Mfig13viT6NKvRzWZ+lXz0Y5D60w6uJIBAOGq9mSHf0gktF0duw==} - vfile-reporter@8.1.1: - resolution: {integrity: sha512-qxRZcnFSQt6pWKn3PAk81yLK2rO2i7CDXpy8v8ZquiEOMLSnPw6BMSi9Y1sUCwGGl7a9b3CJT1CKpnRF7pp66g==} - - vfile-sort@4.0.0: - resolution: {integrity: sha512-lffPI1JrbHDTToJwcq0rl6rBmkjQmMuXkAxsZPRS9DXbaJQvc642eCg6EGxcX2i1L+esbuhq+2l9tBll5v8AeQ==} - - vfile-statistics@3.0.0: - resolution: {integrity: sha512-/qlwqwWBWFOmpXujL/20P+Iuydil0rZZNglR+VNm6J0gpLHwuVM5s7g2TfVoswbXjZ4HuIhLMySEyIw5i7/D8w==} + vfile@5.3.7: + resolution: {integrity: sha512-r7qlzkgErKjobAmyNIkkSpizsFPYiUPuJb5pNW1RB4JcYVZhs4lIbVqk8XPk033CV/1z8ss5pkax8SuhGpcG8g==} vfile@6.0.3: resolution: {integrity: sha512-KzIbH/9tXat2u30jf+smMwFCsno4wHVdNmzFyL+T/L3UGqqk6JKfVqOFOZEpZSHADH1k40ab6NUIXZq422ov3Q==} @@ -5011,9 +4497,6 @@ packages: jsdom: optional: true - walk-up-path@3.0.1: - resolution: {integrity: sha512-9YlCL/ynK3CTlrSRrDxZvUauLzAswPCrsaCgilqFevUYpeEW0/3ScEjaa3kbW/T0ghhkEr7mv+fpjqn1Y1YuTA==} - walk-up-path@4.0.0: resolution: {integrity: sha512-3hu+tD8YzSLGuFYtPRb48vdhKMi0KQV5sn+uWr8+7dMEq/2G/dtLrdDinkLjqq5TIbIBjYJ4Ax/n3YiaW7QM8A==} engines: {node: 20 || >=22} @@ -5022,6 +4505,9 @@ packages: resolution: {integrity: sha512-c5EGNOiyxxV5qmTtAB7rbiXxi1ooX1pQKMLX/MIabJjRA0SJBQOjKF+KSVfHkr9U1cADPon0mRiVe/riyaiDUA==} engines: {node: '>=10.13.0'} + web-namespaces@2.0.1: + resolution: {integrity: sha512-bKr1DkiNa2krS7qxNtdrtHAmzuYGFQLiQ13TsorsdT6ULTkPLKuu5+GsFpDlg6JFjUTwX2DyhMPG2be8uPrqsQ==} + webpack-bundle-analyzer@4.10.1: resolution: {integrity: sha512-s3P7pgexgT/HTUSYgxJyn28A+99mmLq4HsJepMPzu0R8ImJc52QNqaFYW1Z2z2uIb1/J3eYgaAWVpaC+v/1aAQ==} engines: {node: '>= 10.13.0'} @@ -5066,11 +4552,6 @@ packages: engines: {node: '>= 8'} hasBin: true - which@4.0.0: - resolution: {integrity: sha512-GlaYyEb07DPxYCKhKzplCWBJtvxZcZMrL+4UkrTSJHHPyZU4mYYTv3qaOe77H7EODLSSopAUFAc6W8U4yqvscg==} - engines: {node: ^16.13.0 || >=18.0.0} - hasBin: true - why-is-node-running@2.3.0: resolution: {integrity: sha512-hUrmaWBdVDcxvYqnyh09zunKzROWjbZTiNy8dBEjkS7ehEDQibXJ7XvlmtbwuTclUiIyN+CyXQD4Vmko8fNm8w==} engines: {node: '>=8'} @@ -5080,14 +4561,6 @@ packages: resolution: {integrity: sha512-BN22B5eaMMI9UMtjrGd5g5eCYPpCPDUy0FJXbYsaT5zYxjFOckS53SQDE3pWkVoWpHXVb3BrYcEN4Twa55B5cA==} engines: {node: '>=0.10.0'} - wrap-ansi@7.0.0: - resolution: {integrity: sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==} - engines: {node: '>=10'} - - wrap-ansi@8.1.0: - resolution: {integrity: sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ==} - engines: {node: '>=12'} - ws@7.5.10: resolution: {integrity: sha512-+dbF1tHwZpXcbOJdVOkzLDxZP1ailvSxM6ZweXTegylPny803bFhA+vqBYw4s31NSAk4S2Qz+AKXK9a4wkdjcQ==} engines: {node: '>=8.3.0'} @@ -5418,6 +4891,12 @@ snapshots: dependencies: tslib: 2.8.1 + '@hbsnow/rehype-sectionize@1.0.7': + dependencies: + hast-util-heading: 2.0.1 + hast-util-heading-rank: 2.1.1 + rehype: 12.0.1 + '@heroui/accordion@2.2.25(@heroui/system@2.4.24(@heroui/theme@2.4.24(tailwindcss@4.1.18))(framer-motion@12.23.26(react-dom@19.2.3(react@19.2.3))(react@19.2.3))(react-dom@19.2.3(react@19.2.3))(react@19.2.3))(@heroui/theme@2.4.24(tailwindcss@4.1.18))(framer-motion@12.23.26(react-dom@19.2.3(react@19.2.3))(react@19.2.3))(react-dom@19.2.3(react@19.2.3))(react@19.2.3)': dependencies: '@heroui/aria-utils': 2.2.25(@heroui/theme@2.4.24(tailwindcss@4.1.18))(framer-motion@12.23.26(react-dom@19.2.3(react@19.2.3))(react@19.2.3))(react-dom@19.2.3(react@19.2.3))(react@19.2.3) @@ -6566,15 +6045,6 @@ snapshots: dependencies: '@swc/helpers': 0.5.17 - '@isaacs/cliui@8.0.2': - dependencies: - string-width: 5.1.2 - string-width-cjs: string-width@4.2.3 - strip-ansi: 7.1.0 - strip-ansi-cjs: strip-ansi@6.0.1 - wrap-ansi: 8.1.0 - wrap-ansi-cjs: wrap-ansi@7.0.0 - '@jridgewell/gen-mapping@0.3.13': dependencies: '@jridgewell/sourcemap-codec': 1.5.5 @@ -6646,13 +6116,6 @@ snapshots: '@types/react': 19.2.7 react: 19.2.3 - '@napi-rs/wasm-runtime@0.2.12': - dependencies: - '@emnapi/core': 1.7.1 - '@emnapi/runtime': 1.7.1 - '@tybys/wasm-util': 0.10.1 - optional: true - '@napi-rs/wasm-runtime@1.1.0': dependencies: '@emnapi/core': 1.7.1 @@ -6716,60 +6179,6 @@ snapshots: '@nodelib/fs.scandir': 2.1.5 fastq: 1.19.1 - '@nolyfill/is-core-module@1.0.39': {} - - '@npmcli/config@8.3.4': - dependencies: - '@npmcli/map-workspaces': 3.0.6 - '@npmcli/package-json': 5.2.1 - ci-info: 4.2.0 - ini: 4.1.3 - nopt: 7.2.1 - proc-log: 4.2.0 - semver: 7.7.3 - walk-up-path: 3.0.1 - transitivePeerDependencies: - - bluebird - - '@npmcli/git@5.0.8': - dependencies: - '@npmcli/promise-spawn': 7.0.2 - ini: 4.1.3 - lru-cache: 10.4.3 - npm-pick-manifest: 9.1.0 - proc-log: 4.2.0 - promise-inflight: 1.0.1 - promise-retry: 2.0.1 - semver: 7.7.3 - which: 4.0.0 - transitivePeerDependencies: - - bluebird - - '@npmcli/map-workspaces@3.0.6': - dependencies: - '@npmcli/name-from-folder': 2.0.0 - glob: 10.4.5 - minimatch: 9.0.5 - read-package-json-fast: 3.0.2 - - '@npmcli/name-from-folder@2.0.0': {} - - '@npmcli/package-json@5.2.1': - dependencies: - '@npmcli/git': 5.0.8 - glob: 10.4.5 - hosted-git-info: 7.0.2 - json-parse-even-better-errors: 3.0.2 - normalize-package-data: 6.0.2 - proc-log: 4.2.0 - semver: 7.7.3 - transitivePeerDependencies: - - bluebird - - '@npmcli/promise-spawn@7.0.2': - dependencies: - which: 4.0.0 - '@oxc-resolver/binding-android-arm-eabi@11.16.0': optional: true @@ -6832,9 +6241,6 @@ snapshots: '@oxc-resolver/binding-win32-x64-msvc@11.16.0': optional: true - '@pkgjs/parseargs@0.11.0': - optional: true - '@pkgr/core@0.2.7': {} '@polka/url@1.0.0-next.29': {} @@ -7876,8 +7282,6 @@ snapshots: '@rollup/rollup-win32-x64-msvc@4.53.5': optional: true - '@rtsao/scc@1.1.0': {} - '@standard-schema/spec@1.1.0': {} '@swc/helpers@0.5.15': @@ -8000,10 +7404,6 @@ snapshots: '@types/deep-eql': 4.0.2 assertion-error: 2.0.1 - '@types/concat-stream@2.0.3': - dependencies: - '@types/node': 25.0.3 - '@types/debug@4.1.12': dependencies: '@types/ms': 0.7.34 @@ -8032,16 +7432,16 @@ snapshots: '@types/estree@1.0.8': {} + '@types/hast@2.3.10': + dependencies: + '@types/unist': 2.0.11 + '@types/hast@3.0.4': dependencies: '@types/unist': 3.0.3 - '@types/is-empty@1.2.3': {} - '@types/json-schema@7.0.15': {} - '@types/json5@0.0.29': {} - '@types/mdast@4.0.4': dependencies: '@types/unist': 3.0.3 @@ -8054,20 +7454,16 @@ snapshots: dependencies: undici-types: 6.21.0 - '@types/node@22.19.3': - dependencies: - undici-types: 6.21.0 - '@types/node@25.0.3': dependencies: undici-types: 7.16.0 + '@types/parse5@6.0.3': {} + '@types/react@19.2.7': dependencies: csstype: 3.2.3 - '@types/supports-color@8.1.3': {} - '@types/ungap__structured-clone@1.2.0': {} '@types/unist@2.0.11': {} @@ -8169,65 +7565,6 @@ snapshots: '@ungap/structured-clone@1.2.1': {} - '@unrs/resolver-binding-android-arm-eabi@1.11.1': - optional: true - - '@unrs/resolver-binding-android-arm64@1.11.1': - optional: true - - '@unrs/resolver-binding-darwin-arm64@1.11.1': - optional: true - - '@unrs/resolver-binding-darwin-x64@1.11.1': - optional: true - - '@unrs/resolver-binding-freebsd-x64@1.11.1': - optional: true - - '@unrs/resolver-binding-linux-arm-gnueabihf@1.11.1': - optional: true - - '@unrs/resolver-binding-linux-arm-musleabihf@1.11.1': - optional: true - - '@unrs/resolver-binding-linux-arm64-gnu@1.11.1': - optional: true - - '@unrs/resolver-binding-linux-arm64-musl@1.11.1': - optional: true - - '@unrs/resolver-binding-linux-ppc64-gnu@1.11.1': - optional: true - - '@unrs/resolver-binding-linux-riscv64-gnu@1.11.1': - optional: true - - '@unrs/resolver-binding-linux-riscv64-musl@1.11.1': - optional: true - - '@unrs/resolver-binding-linux-s390x-gnu@1.11.1': - optional: true - - '@unrs/resolver-binding-linux-x64-gnu@1.11.1': - optional: true - - '@unrs/resolver-binding-linux-x64-musl@1.11.1': - optional: true - - '@unrs/resolver-binding-wasm32-wasi@1.11.1': - dependencies: - '@napi-rs/wasm-runtime': 0.2.12 - optional: true - - '@unrs/resolver-binding-win32-arm64-msvc@1.11.1': - optional: true - - '@unrs/resolver-binding-win32-ia32-msvc@1.11.1': - optional: true - - '@unrs/resolver-binding-win32-x64-msvc@1.11.1': - optional: true - '@vitejs/plugin-react@5.1.2(vite@7.3.0(@types/node@25.0.3)(jiti@2.6.1)(lightningcss@1.30.2)(terser@5.37.0)(yaml@2.8.0))': dependencies: '@babel/core': 7.28.5 @@ -8376,8 +7713,6 @@ snapshots: '@xtuc/long@4.2.2': optional: true - abbrev@2.0.0: {} - acorn-jsx@5.3.2(acorn@8.14.0): dependencies: acorn: 8.14.0 @@ -8425,22 +7760,14 @@ snapshots: require-from-string: 2.0.2 optional: true - ansi-regex@5.0.1: {} - - ansi-regex@6.1.0: {} - ansi-sequence-parser@1.1.1: {} ansi-styles@4.3.0: dependencies: color-convert: 2.0.1 - ansi-styles@6.2.1: {} - argparse@2.0.1: {} - aria-query@5.3.2: {} - array-buffer-byte-length@1.0.2: dependencies: call-bound: 1.0.4 @@ -8466,16 +7793,6 @@ snapshots: es-object-atoms: 1.1.1 es-shim-unscopables: 1.1.0 - array.prototype.findlastindex@1.2.6: - dependencies: - call-bind: 1.0.8 - call-bound: 1.0.4 - define-properties: 1.2.1 - es-abstract: 1.24.1 - es-errors: 1.3.0 - es-object-atoms: 1.1.1 - es-shim-unscopables: 1.1.0 - array.prototype.flat@1.3.3: dependencies: call-bind: 1.0.8 @@ -8510,8 +7827,6 @@ snapshots: assertion-error@2.0.1: {} - ast-types-flow@0.0.8: {} - astring@1.9.0: {} async-function@1.0.0: {} @@ -8520,10 +7835,6 @@ snapshots: dependencies: possible-typed-array-names: 1.1.0 - axe-core@4.11.0: {} - - axobject-query@4.1.0: {} - bail@2.0.2: {} balanced-match@1.0.2: {} @@ -8551,7 +7862,8 @@ snapshots: node-releases: 2.0.27 update-browserslist-db: 1.2.3(browserslist@4.28.1) - buffer-from@1.1.2: {} + buffer-from@1.1.2: + optional: true call-bind-apply-helpers@1.0.2: dependencies: @@ -8594,8 +7906,6 @@ snapshots: chrome-trace-event@1.0.4: optional: true - ci-info@4.2.0: {} - client-only@0.0.1: {} clsx@2.1.1: {} @@ -8641,13 +7951,6 @@ snapshots: concat-map@0.0.1: {} - concat-stream@2.0.0: - dependencies: - buffer-from: 1.1.2 - inherits: 2.0.4 - readable-stream: 3.6.2 - typedarray: 0.0.6 - convert-source-map@2.0.0: {} cross-spawn@7.0.6: @@ -8658,8 +7961,6 @@ snapshots: csstype@3.2.3: {} - damerau-levenshtein@1.0.8: {} - data-view-buffer@1.0.2: dependencies: call-bound: 1.0.4 @@ -8682,10 +7983,6 @@ snapshots: debounce@1.2.1: {} - debug@3.2.7: - dependencies: - ms: 2.1.3 - debug@4.4.0: dependencies: ms: 2.1.3 @@ -8742,27 +8039,13 @@ snapshots: duplexer@0.1.2: {} - eastasianwidth@0.2.0: {} - electron-to-chromium@1.5.267: {} - emoji-regex@10.4.0: {} - - emoji-regex@8.0.0: {} - - emoji-regex@9.2.2: {} - enhanced-resolve@5.18.4: dependencies: graceful-fs: 4.2.11 tapable: 2.3.0 - err-code@2.0.3: {} - - error-ex@1.3.2: - dependencies: - is-arrayish: 0.2.1 - es-abstract@1.24.0: dependencies: array-buffer-byte-length: 1.0.2 @@ -8972,150 +8255,10 @@ snapshots: escape-string-regexp@5.0.0: {} - eslint-config-next@16.1.0(@typescript-eslint/parser@8.50.0(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3))(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3): - dependencies: - '@next/eslint-plugin-next': 16.1.0 - eslint: 9.39.2(jiti@2.6.1) - eslint-import-resolver-node: 0.3.9 - eslint-import-resolver-typescript: 3.10.1(eslint-plugin-import@2.32.0)(eslint@9.39.2(jiti@2.6.1)) - eslint-plugin-import: 2.32.0(@typescript-eslint/parser@8.50.0(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3))(eslint-import-resolver-typescript@3.10.1)(eslint@9.39.2(jiti@2.6.1)) - eslint-plugin-jsx-a11y: 6.10.2(eslint@9.39.2(jiti@2.6.1)) - eslint-plugin-react: 7.37.5(eslint@9.39.2(jiti@2.6.1)) - eslint-plugin-react-hooks: 7.0.1(eslint@9.39.2(jiti@2.6.1)) - globals: 16.4.0 - typescript-eslint: 8.50.0(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3) - optionalDependencies: - typescript: 5.9.3 - transitivePeerDependencies: - - '@typescript-eslint/parser' - - eslint-import-resolver-webpack - - eslint-plugin-import-x - - supports-color - eslint-config-prettier@10.1.8(eslint@9.39.2(jiti@2.6.1)): dependencies: eslint: 9.39.2(jiti@2.6.1) - eslint-import-resolver-node@0.3.9: - dependencies: - debug: 3.2.7 - is-core-module: 2.16.1 - resolve: 1.22.11 - transitivePeerDependencies: - - supports-color - - eslint-import-resolver-typescript@3.10.1(eslint-plugin-import@2.32.0)(eslint@9.39.2(jiti@2.6.1)): - dependencies: - '@nolyfill/is-core-module': 1.0.39 - debug: 4.4.3 - eslint: 9.39.2(jiti@2.6.1) - get-tsconfig: 4.13.0 - is-bun-module: 2.0.0 - stable-hash: 0.0.5 - tinyglobby: 0.2.15 - unrs-resolver: 1.11.1 - optionalDependencies: - eslint-plugin-import: 2.32.0(@typescript-eslint/parser@8.50.0(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3))(eslint-import-resolver-typescript@3.10.1)(eslint@9.39.2(jiti@2.6.1)) - transitivePeerDependencies: - - supports-color - - eslint-mdx@3.6.2(eslint@9.39.2(jiti@2.6.1)): - dependencies: - acorn: 8.15.0 - acorn-jsx: 5.3.2(acorn@8.15.0) - eslint: 9.39.2(jiti@2.6.1) - espree: 10.4.0 - estree-util-visit: 2.0.0 - remark-mdx: 3.1.0 - remark-parse: 11.0.0 - remark-stringify: 11.0.0 - synckit: 0.11.8 - unified: 11.0.5 - unified-engine: 11.2.2 - unist-util-visit: 5.0.0 - uvu: 0.5.6 - vfile: 6.0.3 - transitivePeerDependencies: - - bluebird - - supports-color - - eslint-module-utils@2.12.1(@typescript-eslint/parser@8.50.0(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3))(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.10.1)(eslint@9.39.2(jiti@2.6.1)): - dependencies: - debug: 3.2.7 - optionalDependencies: - '@typescript-eslint/parser': 8.50.0(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3) - eslint: 9.39.2(jiti@2.6.1) - eslint-import-resolver-node: 0.3.9 - eslint-import-resolver-typescript: 3.10.1(eslint-plugin-import@2.32.0)(eslint@9.39.2(jiti@2.6.1)) - transitivePeerDependencies: - - supports-color - - eslint-plugin-import@2.32.0(@typescript-eslint/parser@8.50.0(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3))(eslint-import-resolver-typescript@3.10.1)(eslint@9.39.2(jiti@2.6.1)): - dependencies: - '@rtsao/scc': 1.1.0 - array-includes: 3.1.9 - array.prototype.findlastindex: 1.2.6 - array.prototype.flat: 1.3.3 - array.prototype.flatmap: 1.3.3 - debug: 3.2.7 - doctrine: 2.1.0 - eslint: 9.39.2(jiti@2.6.1) - eslint-import-resolver-node: 0.3.9 - eslint-module-utils: 2.12.1(@typescript-eslint/parser@8.50.0(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3))(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.10.1)(eslint@9.39.2(jiti@2.6.1)) - hasown: 2.0.2 - is-core-module: 2.16.1 - is-glob: 4.0.3 - minimatch: 3.1.2 - object.fromentries: 2.0.8 - object.groupby: 1.0.3 - object.values: 1.2.1 - semver: 6.3.1 - string.prototype.trimend: 1.0.9 - tsconfig-paths: 3.15.0 - optionalDependencies: - '@typescript-eslint/parser': 8.50.0(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3) - transitivePeerDependencies: - - eslint-import-resolver-typescript - - eslint-import-resolver-webpack - - supports-color - - eslint-plugin-jsx-a11y@6.10.2(eslint@9.39.2(jiti@2.6.1)): - dependencies: - aria-query: 5.3.2 - array-includes: 3.1.9 - array.prototype.flatmap: 1.3.3 - ast-types-flow: 0.0.8 - axe-core: 4.11.0 - axobject-query: 4.1.0 - damerau-levenshtein: 1.0.8 - emoji-regex: 9.2.2 - eslint: 9.39.2(jiti@2.6.1) - hasown: 2.0.2 - jsx-ast-utils: 3.3.5 - language-tags: 1.0.9 - minimatch: 3.1.2 - object.fromentries: 2.0.8 - safe-regex-test: 1.1.0 - string.prototype.includes: 2.0.1 - - eslint-plugin-mdx@3.6.2(eslint@9.39.2(jiti@2.6.1)): - dependencies: - eslint: 9.39.2(jiti@2.6.1) - eslint-mdx: 3.6.2(eslint@9.39.2(jiti@2.6.1)) - mdast-util-from-markdown: 2.0.2 - mdast-util-mdx: 3.0.0 - micromark-extension-mdxjs: 3.0.0 - remark-mdx: 3.1.0 - remark-parse: 11.0.0 - remark-stringify: 11.0.0 - synckit: 0.11.8 - unified: 11.0.5 - vfile: 6.0.3 - transitivePeerDependencies: - - bluebird - - remark-lint-file-extension - - supports-color - eslint-plugin-prettier@5.5.4(@types/eslint@9.6.1)(eslint-config-prettier@10.1.8(eslint@9.39.2(jiti@2.6.1)))(eslint@9.39.2(jiti@2.6.1))(prettier@3.6.2): dependencies: eslint: 9.39.2(jiti@2.6.1) @@ -9341,11 +8484,6 @@ snapshots: dependencies: is-callable: 1.2.7 - foreground-child@3.3.1: - dependencies: - cross-spawn: 7.0.6 - signal-exit: 4.1.0 - formatly@0.3.0: dependencies: fd-package-json: 2.0.0 @@ -9401,10 +8539,6 @@ snapshots: es-errors: 1.3.0 get-intrinsic: 1.3.0 - get-tsconfig@4.13.0: - dependencies: - resolve-pkg-maps: 1.0.0 - github-slugger@2.0.0: {} glob-parent@5.1.2: @@ -9418,19 +8552,8 @@ snapshots: glob-to-regexp@0.4.1: optional: true - glob@10.4.5: - dependencies: - foreground-child: 3.3.1 - jackspeak: 3.4.3 - minimatch: 9.0.5 - minipass: 7.1.2 - package-json-from-dist: 1.0.1 - path-scurry: 1.11.1 - globals@14.0.0: {} - globals@16.4.0: {} - globalthis@1.0.4: dependencies: define-properties: 1.2.1 @@ -9472,14 +8595,56 @@ snapshots: dependencies: function-bind: 1.1.2 + hast-util-from-parse5@7.1.2: + dependencies: + '@types/hast': 2.3.10 + '@types/unist': 2.0.11 + hastscript: 7.2.0 + property-information: 6.5.0 + vfile: 5.3.7 + vfile-location: 4.1.0 + web-namespaces: 2.0.1 + + hast-util-heading-rank@2.1.1: + dependencies: + '@types/hast': 2.3.10 + hast-util-heading-rank@3.0.0: dependencies: '@types/hast': 3.0.4 + hast-util-heading@2.0.1: + dependencies: + '@types/hast': 2.3.10 + hast-util-is-element: 2.1.3 + + hast-util-is-element@2.1.3: + dependencies: + '@types/hast': 2.3.10 + '@types/unist': 2.0.11 + hast-util-is-element@3.0.0: dependencies: '@types/hast': 3.0.4 + hast-util-parse-selector@3.1.1: + dependencies: + '@types/hast': 2.3.10 + + hast-util-raw@7.2.3: + dependencies: + '@types/hast': 2.3.10 + '@types/parse5': 6.0.3 + hast-util-from-parse5: 7.1.2 + hast-util-to-parse5: 7.1.0 + html-void-elements: 2.0.1 + parse5: 6.0.1 + unist-util-position: 4.0.4 + unist-util-visit: 4.1.2 + vfile: 5.3.7 + web-namespaces: 2.0.1 + zwitch: 2.0.4 + hast-util-to-estree@3.1.0: dependencies: '@types/estree': 1.0.6 @@ -9501,6 +8666,20 @@ snapshots: transitivePeerDependencies: - supports-color + hast-util-to-html@8.0.4: + dependencies: + '@types/hast': 2.3.10 + '@types/unist': 2.0.11 + ccount: 2.0.1 + comma-separated-tokens: 2.0.3 + hast-util-raw: 7.2.3 + hast-util-whitespace: 2.0.1 + html-void-elements: 2.0.1 + property-information: 6.5.0 + space-separated-tokens: 2.0.2 + stringify-entities: 4.0.4 + zwitch: 2.0.4 + hast-util-to-jsx-runtime@2.3.2: dependencies: '@types/estree': 1.0.6 @@ -9521,29 +8700,44 @@ snapshots: transitivePeerDependencies: - supports-color + hast-util-to-parse5@7.1.0: + dependencies: + '@types/hast': 2.3.10 + comma-separated-tokens: 2.0.3 + property-information: 6.5.0 + space-separated-tokens: 2.0.2 + web-namespaces: 2.0.1 + zwitch: 2.0.4 + hast-util-to-string@3.0.1: dependencies: '@types/hast': 3.0.4 + hast-util-whitespace@2.0.1: {} + hast-util-whitespace@3.0.0: dependencies: '@types/hast': 3.0.4 + hastscript@7.2.0: + dependencies: + '@types/hast': 2.3.10 + comma-separated-tokens: 2.0.3 + hast-util-parse-selector: 3.1.1 + property-information: 6.5.0 + space-separated-tokens: 2.0.2 + hermes-estree@0.25.1: {} hermes-parser@0.25.1: dependencies: hermes-estree: 0.25.1 - hosted-git-info@7.0.2: - dependencies: - lru-cache: 10.4.3 - html-escaper@2.0.2: {} - ignore@5.3.2: {} + html-void-elements@2.0.1: {} - ignore@6.0.2: {} + ignore@5.3.2: {} ignore@7.0.5: {} @@ -9552,14 +8746,8 @@ snapshots: parent-module: 1.0.1 resolve-from: 4.0.0 - import-meta-resolve@4.1.0: {} - imurmurhash@0.1.4: {} - inherits@2.0.4: {} - - ini@4.1.3: {} - inline-style-parser@0.1.1: {} inline-style-parser@0.2.4: {} @@ -9595,8 +8783,6 @@ snapshots: call-bound: 1.0.4 get-intrinsic: 1.3.0 - is-arrayish@0.2.1: {} - is-arrayish@0.3.4: {} is-async-function@2.1.1: @@ -9616,9 +8802,7 @@ snapshots: call-bound: 1.0.4 has-tostringtag: 1.0.2 - is-bun-module@2.0.0: - dependencies: - semver: 7.7.3 + is-buffer@2.0.5: {} is-callable@1.2.7: {} @@ -9639,16 +8823,12 @@ snapshots: is-decimal@2.0.1: {} - is-empty@1.2.0: {} - is-extglob@2.1.1: {} is-finalizationregistry@1.1.1: dependencies: call-bound: 1.0.4 - is-fullwidth-code-point@3.0.0: {} - is-generator-function@1.1.0: dependencies: call-bound: 1.0.4 @@ -9720,8 +8900,6 @@ snapshots: isexe@2.0.0: {} - isexe@3.1.1: {} - iterator.prototype@1.1.5: dependencies: define-data-property: 1.1.4 @@ -9731,12 +8909,6 @@ snapshots: has-symbols: 1.1.0 set-function-name: 2.0.2 - jackspeak@3.4.3: - dependencies: - '@isaacs/cliui': 8.0.2 - optionalDependencies: - '@pkgjs/parseargs': 0.11.0 - jest-worker@27.5.1: dependencies: '@types/node': 25.0.3 @@ -9766,8 +8938,6 @@ snapshots: json-parse-even-better-errors@2.3.1: optional: true - json-parse-even-better-errors@3.0.2: {} - json-schema-traverse@0.4.1: {} json-schema-traverse@1.0.0: @@ -9775,10 +8945,6 @@ snapshots: json-stable-stringify-without-jsonify@1.0.1: {} - json5@1.0.2: - dependencies: - minimist: 1.2.8 - json5@2.2.3: {} jsx-ast-utils@3.3.5: @@ -9792,8 +8958,6 @@ snapshots: dependencies: json-buffer: 3.0.1 - kleur@4.1.5: {} - knip@5.75.2(@types/node@25.0.3)(typescript@5.9.3): dependencies: '@nodelib/fs.walk': 1.2.8 @@ -9811,12 +8975,6 @@ snapshots: typescript: 5.9.3 zod: 4.2.1 - language-subtag-registry@0.3.23: {} - - language-tags@1.0.9: - dependencies: - language-subtag-registry: 0.3.23 - levn@0.4.1: dependencies: prelude-ls: 1.2.1 @@ -9871,15 +9029,6 @@ snapshots: lightningcss-win32-arm64-msvc: 1.30.2 lightningcss-win32-x64-msvc: 1.30.2 - lines-and-columns@2.0.4: {} - - load-plugin@6.0.3: - dependencies: - '@npmcli/config': 8.3.4 - import-meta-resolve: 4.1.0 - transitivePeerDependencies: - - bluebird - loader-runner@4.3.1: optional: true @@ -9895,8 +9044,6 @@ snapshots: dependencies: js-tokens: 4.0.0 - lru-cache@10.4.3: {} - lru-cache@5.1.1: dependencies: yallist: 3.1.1 @@ -10397,8 +9544,6 @@ snapshots: minimist@1.2.8: {} - minipass@7.1.2: {} - motion-dom@12.23.23: dependencies: motion-utils: 12.23.6 @@ -10413,16 +9558,12 @@ snapshots: react: 19.2.3 react-dom: 19.2.3(react@19.2.3) - mri@1.2.0: {} - mrmime@2.0.1: {} ms@2.1.3: {} nanoid@3.3.11: {} - napi-postinstall@0.3.4: {} - natural-compare@1.4.0: {} neo-async@2.6.2: @@ -10459,36 +9600,6 @@ snapshots: node-releases@2.0.27: {} - nopt@7.2.1: - dependencies: - abbrev: 2.0.0 - - normalize-package-data@6.0.2: - dependencies: - hosted-git-info: 7.0.2 - semver: 7.7.3 - validate-npm-package-license: 3.0.4 - - npm-install-checks@6.3.0: - dependencies: - semver: 7.7.3 - - npm-normalize-package-bin@3.0.1: {} - - npm-package-arg@11.0.3: - dependencies: - hosted-git-info: 7.0.2 - proc-log: 4.2.0 - semver: 7.7.3 - validate-npm-package-name: 5.0.1 - - npm-pick-manifest@9.1.0: - dependencies: - npm-install-checks: 6.3.0 - npm-normalize-package-bin: 3.0.1 - npm-package-arg: 11.0.3 - semver: 7.7.3 - object-assign@4.1.1: {} object-inspect@1.13.4: {} @@ -10518,12 +9629,6 @@ snapshots: es-abstract: 1.24.0 es-object-atoms: 1.1.1 - object.groupby@1.0.3: - dependencies: - call-bind: 1.0.8 - define-properties: 1.2.1 - es-abstract: 1.24.1 - object.values@1.2.1: dependencies: call-bind: 1.0.8 @@ -10581,8 +9686,6 @@ snapshots: dependencies: p-limit: 3.1.0 - package-json-from-dist@1.0.1: {} - parent-module@1.0.1: dependencies: callsites: 3.1.0 @@ -10597,13 +9700,7 @@ snapshots: is-decimal: 2.0.1 is-hexadecimal: 2.0.1 - parse-json@7.1.1: - dependencies: - '@babel/code-frame': 7.27.1 - error-ex: 1.3.2 - json-parse-even-better-errors: 3.0.2 - lines-and-columns: 2.0.4 - type-fest: 3.13.1 + parse5@6.0.1: {} path-exists@4.0.0: {} @@ -10611,11 +9708,6 @@ snapshots: path-parse@1.0.7: {} - path-scurry@1.11.1: - dependencies: - lru-cache: 10.4.3 - minipass: 7.1.2 - pathe@2.0.3: {} picocolors@1.1.1: {} @@ -10646,15 +9738,6 @@ snapshots: prettier@3.6.2: {} - proc-log@4.2.0: {} - - promise-inflight@1.0.1: {} - - promise-retry@2.0.1: - dependencies: - err-code: 2.0.3 - retry: 0.12.0 - prop-types@15.8.1: dependencies: loose-envify: 1.4.0 @@ -10690,23 +9773,8 @@ snapshots: transitivePeerDependencies: - '@types/react' - react-wrap-balancer@1.1.1(react@19.2.3): - dependencies: - react: 19.2.3 - react@19.2.3: {} - read-package-json-fast@3.0.2: - dependencies: - json-parse-even-better-errors: 3.0.2 - npm-normalize-package-bin: 3.0.1 - - readable-stream@3.6.2: - dependencies: - inherits: 2.0.4 - string_decoder: 1.3.0 - util-deprecate: 1.0.2 - recma-build-jsx@1.0.0: dependencies: '@types/estree': 1.0.6 @@ -10766,6 +9834,13 @@ snapshots: unified: 11.0.5 unist-util-visit: 5.0.0 + rehype-parse@8.0.5: + dependencies: + '@types/hast': 2.3.10 + hast-util-from-parse5: 7.1.2 + parse5: 6.0.1 + unified: 10.1.2 + rehype-recma@1.0.0: dependencies: '@types/estree': 1.0.6 @@ -10782,6 +9857,19 @@ snapshots: hast-util-to-string: 3.0.1 unist-util-visit: 5.0.0 + rehype-stringify@9.0.4: + dependencies: + '@types/hast': 2.3.10 + hast-util-to-html: 8.0.4 + unified: 10.1.2 + + rehype@12.0.1: + dependencies: + '@types/hast': 2.3.10 + rehype-parse: 8.0.5 + rehype-stringify: 9.0.4 + unified: 10.1.2 + remark-gfm@4.0.1: dependencies: '@types/mdast': 4.0.4 @@ -10833,22 +9921,12 @@ snapshots: resolve-from@4.0.0: {} - resolve-pkg-maps@1.0.0: {} - - resolve@1.22.11: - dependencies: - is-core-module: 2.16.1 - path-parse: 1.0.7 - supports-preserve-symlinks-flag: 1.0.0 - resolve@2.0.0-next.5: dependencies: is-core-module: 2.16.1 path-parse: 1.0.7 supports-preserve-symlinks-flag: 1.0.0 - retry@0.12.0: {} - reusify@1.1.0: {} rollup@4.53.5: @@ -10883,10 +9961,6 @@ snapshots: dependencies: queue-microtask: 1.2.3 - sade@1.8.1: - dependencies: - mri: 1.2.0 - safe-array-concat@1.1.3: dependencies: call-bind: 1.0.8 @@ -10895,7 +9969,8 @@ snapshots: has-symbols: 1.1.0 isarray: 2.0.5 - safe-buffer@5.2.1: {} + safe-buffer@5.2.1: + optional: true safe-push-apply@1.0.0: dependencies: @@ -11028,8 +10103,6 @@ snapshots: siginfo@2.0.0: {} - signal-exit@4.1.0: {} - simple-swizzle@0.2.4: dependencies: is-arrayish: 0.3.4 @@ -11059,22 +10132,6 @@ snapshots: space-separated-tokens@2.0.2: {} - spdx-correct@3.2.0: - dependencies: - spdx-expression-parse: 3.0.1 - spdx-license-ids: 3.0.21 - - spdx-exceptions@2.5.0: {} - - spdx-expression-parse@3.0.1: - dependencies: - spdx-exceptions: 2.5.0 - spdx-license-ids: 3.0.21 - - spdx-license-ids@3.0.21: {} - - stable-hash@0.0.5: {} - stackback@0.0.2: {} std-env@3.10.0: {} @@ -11084,30 +10141,6 @@ snapshots: es-errors: 1.3.0 internal-slot: 1.1.0 - string-width@4.2.3: - dependencies: - emoji-regex: 8.0.0 - is-fullwidth-code-point: 3.0.0 - strip-ansi: 6.0.1 - - string-width@5.1.2: - dependencies: - eastasianwidth: 0.2.0 - emoji-regex: 9.2.2 - strip-ansi: 7.1.0 - - string-width@6.1.0: - dependencies: - eastasianwidth: 0.2.0 - emoji-regex: 10.4.0 - strip-ansi: 7.1.0 - - string.prototype.includes@2.0.1: - dependencies: - call-bind: 1.0.8 - define-properties: 1.2.1 - es-abstract: 1.24.1 - string.prototype.matchall@4.0.12: dependencies: call-bind: 1.0.8 @@ -11152,25 +10185,11 @@ snapshots: define-properties: 1.2.1 es-object-atoms: 1.1.1 - string_decoder@1.3.0: - dependencies: - safe-buffer: 5.2.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 - - strip-ansi@7.1.0: - dependencies: - ansi-regex: 6.1.0 - - strip-bom@3.0.0: {} - strip-json-comments@3.1.1: {} strip-json-comments@5.0.3: {} @@ -11199,8 +10218,6 @@ snapshots: has-flag: 4.0.0 optional: true - supports-color@9.4.0: {} - supports-preserve-symlinks-flag@1.0.0: {} synckit@0.11.8: @@ -11262,21 +10279,12 @@ snapshots: dependencies: typescript: 5.9.3 - tsconfig-paths@3.15.0: - dependencies: - '@types/json5': 0.0.29 - json5: 1.0.2 - minimist: 1.2.8 - strip-bom: 3.0.0 - tslib@2.8.1: {} type-check@0.4.0: dependencies: prelude-ls: 1.2.1 - type-fest@3.13.1: {} - typed-array-buffer@1.0.3: dependencies: call-bound: 1.0.4 @@ -11310,8 +10318,6 @@ snapshots: possible-typed-array-names: 1.1.0 reflect.getprototypeof: 1.0.10 - typedarray@0.0.6: {} - typescript-eslint@8.50.0(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3): dependencies: '@typescript-eslint/eslint-plugin': 8.50.0(@typescript-eslint/parser@8.50.0(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3))(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3) @@ -11336,32 +10342,15 @@ snapshots: undici-types@7.16.0: {} - unified-engine@11.2.2: + unified@10.1.2: dependencies: - '@types/concat-stream': 2.0.3 - '@types/debug': 4.1.12 - '@types/is-empty': 1.2.3 - '@types/node': 22.19.3 - '@types/unist': 3.0.3 - concat-stream: 2.0.0 - debug: 4.4.1 + '@types/unist': 2.0.11 + bail: 2.0.2 extend: 3.0.2 - glob: 10.4.5 - ignore: 6.0.2 - is-empty: 1.2.0 + is-buffer: 2.0.5 is-plain-obj: 4.1.0 - load-plugin: 6.0.3 - parse-json: 7.1.1 trough: 2.2.0 - unist-util-inspect: 8.1.0 - vfile: 6.0.3 - vfile-message: 4.0.2 - vfile-reporter: 8.1.1 - vfile-statistics: 3.0.0 - yaml: 2.8.0 - transitivePeerDependencies: - - bluebird - - supports-color + vfile: 5.3.7 unified@11.0.5: dependencies: @@ -11373,9 +10362,9 @@ snapshots: trough: 2.2.0 vfile: 6.0.3 - unist-util-inspect@8.1.0: + unist-util-is@5.2.1: dependencies: - '@types/unist': 3.0.3 + '@types/unist': 2.0.11 unist-util-is@6.0.0: dependencies: @@ -11385,49 +10374,44 @@ snapshots: dependencies: '@types/unist': 3.0.3 + unist-util-position@4.0.4: + dependencies: + '@types/unist': 2.0.11 + unist-util-position@5.0.0: dependencies: '@types/unist': 3.0.3 + unist-util-stringify-position@3.0.3: + dependencies: + '@types/unist': 2.0.11 + unist-util-stringify-position@4.0.0: dependencies: '@types/unist': 3.0.3 + unist-util-visit-parents@5.1.3: + dependencies: + '@types/unist': 2.0.11 + unist-util-is: 5.2.1 + unist-util-visit-parents@6.0.1: dependencies: '@types/unist': 3.0.3 unist-util-is: 6.0.0 + unist-util-visit@4.1.2: + dependencies: + '@types/unist': 2.0.11 + unist-util-is: 5.2.1 + unist-util-visit-parents: 5.1.3 + 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 - unrs-resolver@1.11.1: - dependencies: - napi-postinstall: 0.3.4 - optionalDependencies: - '@unrs/resolver-binding-android-arm-eabi': 1.11.1 - '@unrs/resolver-binding-android-arm64': 1.11.1 - '@unrs/resolver-binding-darwin-arm64': 1.11.1 - '@unrs/resolver-binding-darwin-x64': 1.11.1 - '@unrs/resolver-binding-freebsd-x64': 1.11.1 - '@unrs/resolver-binding-linux-arm-gnueabihf': 1.11.1 - '@unrs/resolver-binding-linux-arm-musleabihf': 1.11.1 - '@unrs/resolver-binding-linux-arm64-gnu': 1.11.1 - '@unrs/resolver-binding-linux-arm64-musl': 1.11.1 - '@unrs/resolver-binding-linux-ppc64-gnu': 1.11.1 - '@unrs/resolver-binding-linux-riscv64-gnu': 1.11.1 - '@unrs/resolver-binding-linux-riscv64-musl': 1.11.1 - '@unrs/resolver-binding-linux-s390x-gnu': 1.11.1 - '@unrs/resolver-binding-linux-x64-gnu': 1.11.1 - '@unrs/resolver-binding-linux-x64-musl': 1.11.1 - '@unrs/resolver-binding-wasm32-wasi': 1.11.1 - '@unrs/resolver-binding-win32-arm64-msvc': 1.11.1 - '@unrs/resolver-binding-win32-ia32-msvc': 1.11.1 - '@unrs/resolver-binding-win32-x64-msvc': 1.11.1 - update-browserslist-db@1.2.3(browserslist@4.28.1): dependencies: browserslist: 4.28.1 @@ -11461,47 +10445,27 @@ snapshots: dependencies: react: 19.2.3 - util-deprecate@1.0.2: {} - - uvu@0.5.6: + vfile-location@4.1.0: dependencies: - dequal: 2.0.3 - diff: 5.2.0 - kleur: 4.1.5 - sade: 1.8.1 + '@types/unist': 2.0.11 + vfile: 5.3.7 - validate-npm-package-license@3.0.4: + vfile-message@3.1.4: dependencies: - spdx-correct: 3.2.0 - spdx-expression-parse: 3.0.1 - - validate-npm-package-name@5.0.1: {} + '@types/unist': 2.0.11 + unist-util-stringify-position: 3.0.3 vfile-message@4.0.2: dependencies: '@types/unist': 3.0.3 unist-util-stringify-position: 4.0.0 - vfile-reporter@8.1.1: - dependencies: - '@types/supports-color': 8.1.3 - string-width: 6.1.0 - supports-color: 9.4.0 - unist-util-stringify-position: 4.0.0 - vfile: 6.0.3 - vfile-message: 4.0.2 - vfile-sort: 4.0.0 - vfile-statistics: 3.0.0 - - vfile-sort@4.0.0: - dependencies: - vfile: 6.0.3 - vfile-message: 4.0.2 - - vfile-statistics@3.0.0: + vfile@5.3.7: dependencies: - vfile: 6.0.3 - vfile-message: 4.0.2 + '@types/unist': 2.0.11 + is-buffer: 2.0.5 + unist-util-stringify-position: 3.0.3 + vfile-message: 3.1.4 vfile@6.0.3: dependencies: @@ -11562,8 +10526,6 @@ snapshots: - tsx - yaml - walk-up-path@3.0.1: {} - walk-up-path@4.0.0: {} watchpack@2.4.4: @@ -11572,6 +10534,8 @@ snapshots: graceful-fs: 4.2.11 optional: true + web-namespaces@2.0.1: {} + webpack-bundle-analyzer@4.10.1: dependencies: '@discoveryjs/json-ext': 0.5.7 @@ -11672,10 +10636,6 @@ snapshots: dependencies: isexe: 2.0.0 - which@4.0.0: - dependencies: - isexe: 3.1.1 - why-is-node-running@2.3.0: dependencies: siginfo: 2.0.0 @@ -11683,23 +10643,12 @@ snapshots: word-wrap@1.2.5: {} - wrap-ansi@7.0.0: - dependencies: - ansi-styles: 4.3.0 - string-width: 4.2.3 - strip-ansi: 6.0.1 - - wrap-ansi@8.1.0: - dependencies: - ansi-styles: 6.2.1 - string-width: 5.1.2 - strip-ansi: 7.1.0 - ws@7.5.10: {} yallist@3.1.1: {} - yaml@2.8.0: {} + yaml@2.8.0: + optional: true yocto-queue@0.1.0: {} diff --git a/src/app/article/2023-07/ts-data-structure/test.tsx b/src/app/article/2023-07/ts-data-structure/test.tsx index 0fd2f75f..2e58de00 100644 --- a/src/app/article/2023-07/ts-data-structure/test.tsx +++ b/src/app/article/2023-07/ts-data-structure/test.tsx @@ -126,6 +126,7 @@ function renderParagraph(content: IParagraph) { return

{content.text}

; } +/** @lintignore */ export const Post: React.FC<{ post: IPost; }> = ({ post }) => { diff --git a/src/app/article/2024-10/check-target/basic.ts b/src/app/article/2024-10/check-target/basic.ts index f0327257..0e603ddc 100644 --- a/src/app/article/2024-10/check-target/basic.ts +++ b/src/app/article/2024-10/check-target/basic.ts @@ -1,3 +1,4 @@ +/** @lintignore */ export type Target = IGenderTarget | IAgeTarget | ITargetGroup | IRootTarget; export interface IRootTarget { @@ -5,6 +6,7 @@ export interface IRootTarget { child: Target; } +/** @lintignore */ export interface ITargetGroup { type: "group"; operator: "and" | "or"; @@ -22,6 +24,7 @@ export interface IAgeTarget { value: number; } +/** @lintignore */ export interface IEnv { user: IUser; } diff --git a/src/app/article/2025-02/react-expandable-text/ExpandableText.tsx b/src/app/article/2025-02/react-expandable-text/ExpandableText.tsx index bd1022e1..127591dd 100644 --- a/src/app/article/2025-02/react-expandable-text/ExpandableText.tsx +++ b/src/app/article/2025-02/react-expandable-text/ExpandableText.tsx @@ -2,6 +2,7 @@ import { useEffect, useRef, useState } from "react"; +/** @lintignore */ export type ExpandableTextProps = { content: string; lineClamp?: number; diff --git a/src/app/article/2025-07/intl-number-format/ShowAllCurrency.tsx b/src/app/article/2025-07/intl-number-format/ShowAllCurrency.tsx index a786b93b..2eb641e3 100644 --- a/src/app/article/2025-07/intl-number-format/ShowAllCurrency.tsx +++ b/src/app/article/2025-07/intl-number-format/ShowAllCurrency.tsx @@ -78,7 +78,7 @@ for (const script of tryScripts) { const currencies = Intl.supportedValuesOf("currency"); const currencyNames = new Intl.DisplayNames("ko-KR", { type: "currency" }); -export const configs = { +const configs = { currency: Object.fromEntries( [...currencies].map((id) => [id, currencyNames.of(id)]), ), diff --git a/src/app/article/2025-08/workflow/workflow.ts b/src/app/article/2025-08/workflow/workflow.ts deleted file mode 100644 index 40cde52f..00000000 --- a/src/app/article/2025-08/workflow/workflow.ts +++ /dev/null @@ -1,193 +0,0 @@ -/** - * Workflow Step 인터페이스 - * - * @template C 모든 Step에서 공유하는 컨텍스트 타입 - * @template A 이 Step의 action이 반환하는 rollback argument 타입 - */ -export interface IStep { - /** - * 실제 업무 로직 - * - ctx에 결과를 기록하고, rollback에 넘길 값을 리턴 - * - 타입스크립트가 ctx의 타입과 반환값을 자동으로 추론하도록 구현할 것 - * @param ctx 공용 컨텍스트 객체 - * @returns rollback 실행 시 필요한 데이터 (예: 생성된 리소스 ID, 변경 전 상태 등) - */ - action: (ctx: C) => Promise | A; - - /** - * 실패 시 롤백 로직 (선택적) - * - 이후 step에서 에러 발생 시 역순으로 호출됨 - * - action의 반환값을 받아서 롤백 작업 수행 - * @param ctx 공용 컨텍스트 객체 - * @param arg action에서 반환된 값 - */ - rollback?: (ctx: C, arg: A) => Promise; -} - -/** - * Workflow 조기 종료를 위한 신호 클래스 - * - * Step의 action에서 이 객체를 반환하면 나머지 step들을 건너뛰고 - * workflow를 정상 종료합니다 (rollback은 실행되지 않음) - * - * @example - * ```typescript - * const checkConditionStep = createStep( - * async (ctx: MyContext) => { - * if (ctx.shouldSkip) { - * return Workflow.exit("조건이 맞지 않아 워크플로우를 종료합니다"); - * } - * return null; - * } - * ); - * ``` - */ -export class WorkflowStop { - constructor(public message?: string) { - // Set the prototype explicitly to ensure instanceof works correctly! - Object.setPrototypeOf(this, WorkflowStop.prototype); - } -} - -/** - * 여러 Step을 순차 실행하고, 실패 시 역순으로 rollback을 수행하는 Workflow 클래스 - * - * **주의사항: rollback이 필요없는 상황에서는 이 Workflow를 사용하지 마세요!** - * - 단순한 순차 처리만 필요한 경우 일반적인 함수 호출을 사용하세요 - * - 이 클래스는 복잡한 트랜잭션에서 rollback이 필요할 때만 사용하는 것이 목적입니다 - * - * @template C 모든 Step에서 공유하는 컨텍스트 타입 - * - * @example - * ```typescript - * interface MyContext { - * userId: string; - * createdResourceIds: string[]; - * } - * - * const workflow = new Workflow([ - * createResourceStep, // DB에 리소스 생성 - * uploadFileStep, // 파일 업로드 - * sendNotificationStep // 알림 발송 - * ]); - * - * try { - * await workflow.execute({ userId: "123", createdResourceIds: [] }); - * } catch (error) { - * // 실패한 지점부터 역순으로 rollback이 자동 실행됨 - * console.error("Workflow failed:", error); - * } - * ``` - */ -export class Workflow { - /** - * Workflow 조기 종료를 위한 헬퍼 메서드 - * @param message 종료 사유 (선택적) - * @returns WorkflowStop 인스턴스 - */ - static exit(message?: string) { - return new WorkflowStop(message); - } - - /** - * Workflow를 구성하는 Step들의 배열 - */ - // eslint-disable-next-line @typescript-eslint/no-explicit-any - private steps: Array>; - - /** - * Workflow 생성자 - * @param steps 순차 실행할 Step들의 배열 - */ - // eslint-disable-next-line @typescript-eslint/no-explicit-any - constructor(steps: Array>) { - this.steps = steps; - } - - /** - * Workflow 실행 메서드 - * - * 1. Step들을 순차적으로 실행 - * 2. 각 Step의 action 결과를 rollback 용으로 저장 - * 3. 실패 시 완료된 Step들을 역순으로 rollback 실행 - * 4. WorkflowStop이 반환되면 조기 종료 (정상 종료) - * - * @param ctx 모든 Step에서 공유하는 컨텍스트 객체 - * @throws 실행 중 발생한 에러 (rollback 실행 후 재전파) - */ - public async execute(ctx: C): Promise { - // eslint-disable-next-line @typescript-eslint/no-explicit-any - const completed: Array<{ step: IStep; arg: any }> = []; - - for (const step of this.steps) { - // eslint-disable-next-line @typescript-eslint/no-explicit-any - let res: any; - try { - res = await step.action(ctx); - } catch (err) { - // 에러면 rollback만 하고 에러 재전파 - for (const { step: s, arg } of completed.reverse()) { - try { - await s.rollback?.(ctx, arg); - } catch (e) { - // rollback 실패는 무시하고 계속 진행 - - console.error("Rollback failed:", e); - } - } - throw err; - } - - // early exit 신호면, 그냥 종료 - if (res instanceof WorkflowStop) { - return; - } - - // 정상 compArg를 쌓고 다음 스텝으로 - completed.push({ step, arg: res }); - } - } -} - -/** - * Step 생성을 위한 헬퍼 함수 - * - * TypeScript의 타입 추론을 활용하여 action 함수의 매개변수와 반환값을 자동으로 추론합니다. - * - * @template C 컨텍스트 타입 (action 함수의 매개변수에서 자동 추론) - * @template A action 반환값 타입 (action 함수의 반환값에서 자동 추론) - * @param action Step의 실행 로직 - * @param rollback Step의 롤백 로직 (선택적) - * @returns IStep 인터페이스를 구현한 객체 - * - * @example - * ```typescript - * // 타입이 자동으로 추론됨: IStep<{ userId: string; resourceId?: string }, string> - * // \@returns ctx.resourceId - * export const createResourceStep = createStep( - * async (ctx: { userId: string; resourceId?: string }) => { - * const resourceId = await createResource(ctx.userId); - * ctx.resourceId = resourceId; - * return resourceId; // rollback에서 삭제할 때 사용 - * }, - * async (ctx, resourceId) => { - * await deleteResource(resourceId); - * } - * ); - * - * // rollback이 없는 단순한 step - * // @returns ctx.vendorInfo - * export const getVendorInfoStep = createStep( - * async (ctx: { sitePublicId: string; vendorInfo?: VendorInfo }) => { - * ctx.vendorInfo = await getVendorInfo(ctx.sitePublicId); - * return ctx.vendorInfo; - * } - * ); - * ``` - */ -export function createStep( - action: (ctx: C) => Promise | A, - rollback?: (ctx: C, arg: A) => Promise, -): IStep { - return { action, rollback }; -} diff --git a/src/app/article/layout.tsx b/src/app/article/layout.tsx index 6cd05dd8..957f63f9 100644 --- a/src/app/article/layout.tsx +++ b/src/app/article/layout.tsx @@ -1,6 +1,6 @@ import ArticlePageHeader from "@modules/layout/ArticlePageHeader"; import Utterances from "@modules/utterances"; -import ArticleFadeIn from "@modules/article/ArticleFadeIn"; +import ArticleLayout from "@modules/article/ArticleLayout"; import type { Metadata } from "next"; export const metadata: Metadata = { @@ -13,7 +13,7 @@ export default function Layout({ children }: { children: React.ReactNode }) { return ( <> - {children} + {children} ); diff --git a/src/app/en/article/layout.tsx b/src/app/en/article/layout.tsx index 6cd05dd8..7e6bf505 100644 --- a/src/app/en/article/layout.tsx +++ b/src/app/en/article/layout.tsx @@ -1,7 +1,7 @@ import ArticlePageHeader from "@modules/layout/ArticlePageHeader"; import Utterances from "@modules/utterances"; -import ArticleFadeIn from "@modules/article/ArticleFadeIn"; import type { Metadata } from "next"; +import ArticleLayout from "@modules/article/ArticleLayout"; export const metadata: Metadata = { other: { @@ -13,7 +13,7 @@ export default function Layout({ children }: { children: React.ReactNode }) { return ( <> - {children} + {children} ); diff --git a/src/app/ko/article/layout.tsx b/src/app/ko/article/layout.tsx index 6cd05dd8..7e6bf505 100644 --- a/src/app/ko/article/layout.tsx +++ b/src/app/ko/article/layout.tsx @@ -1,7 +1,7 @@ import ArticlePageHeader from "@modules/layout/ArticlePageHeader"; import Utterances from "@modules/utterances"; -import ArticleFadeIn from "@modules/article/ArticleFadeIn"; import type { Metadata } from "next"; +import ArticleLayout from "@modules/article/ArticleLayout"; export const metadata: Metadata = { other: { @@ -13,7 +13,7 @@ export default function Layout({ children }: { children: React.ReactNode }) { return ( <> - {children} + {children} ); diff --git a/src/app/layout.tsx b/src/app/layout.tsx index a59ccf3f..08e9c218 100644 --- a/src/app/layout.tsx +++ b/src/app/layout.tsx @@ -66,18 +66,6 @@ j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src= }} > ) : null} - {process.env.NEXT_PUBLIC_GTM_ID ? ( diff --git a/src/common/fonts.css b/src/common/fonts.css deleted file mode 100644 index e4ab9c77..00000000 --- a/src/common/fonts.css +++ /dev/null @@ -1,1518 +0,0 @@ -/* [0] */ -@font-face { - font-family: "Pretendard Variable"; - font-style: normal; - font-display: swap; - font-weight: 45 920; - src: local("Pretendard Variable"), - url(../../public/woff2-dynamic-subset/PretendardVariable.subset.0.woff2) - format("woff2-variations"); - unicode-range: U+f9ca-fa0b, U+ff03-ff05, U+ff07, U+ff0a-ff0b, U+ff0d-ff19, - U+ff1b, U+ff1d, U+ff20-ff5b, U+ff5d, U+ffe0-ffe3, U+ffe5-ffe6; -} - -/* [1] */ -@font-face { - font-family: "Pretendard Variable"; - font-style: normal; - font-display: swap; - font-weight: 45 920; - src: local("Pretendard Variable"), - url(../../public/woff2-dynamic-subset/PretendardVariable.subset.1.woff2) - format("woff2-variations"); - unicode-range: U+d723-d728, U+d72a-d733, U+d735-d748, U+d74a-d74f, U+d752-d753, - U+d755-d757, U+d75a-d75f, U+d762-d764, U+d766-d768, U+d76a-d76b, U+d76d-d76f, - U+d771-d787, U+d789-d78b, U+d78d-d78f, U+d791-d797, U+d79a, U+d79c, - U+d79e-d7a3, U+f900-f909, U+f90b-f92e; -} - -/* [2] */ -@font-face { - font-family: "Pretendard Variable"; - font-style: normal; - font-display: swap; - font-weight: 45 920; - src: local("Pretendard Variable"), - url(../../public/woff2-dynamic-subset/PretendardVariable.subset.2.woff2) - format("woff2-variations"); - unicode-range: U+d679-d68b, U+d68e-d69e, U+d6a0, U+d6a2-d6a7, U+d6a9-d6c3, - U+d6c6-d6c7, U+d6c9-d6cb, U+d6cd-d6d3, U+d6d5-d6d6, U+d6d8-d6e3, U+d6e5-d6e7, - U+d6e9-d6fb, U+d6fd-d717, U+d719-d71f, U+d721-d722; -} - -/* [3] */ -@font-face { - font-family: "Pretendard Variable"; - font-style: normal; - font-display: swap; - font-weight: 45 920; - src: local("Pretendard Variable"), - url(../../public/woff2-dynamic-subset/PretendardVariable.subset.3.woff2) - format("woff2-variations"); - unicode-range: U+d5bc-d5c7, U+d5ca-d5cb, U+d5cd-d5cf, U+d5d1-d5d7, U+d5d9-d5da, - U+d5dc, U+d5de-d5e3, U+d5e6-d5e7, U+d5e9-d5eb, U+d5ed-d5f6, U+d5f8, - U+d5fa-d5ff, U+d602-d603, U+d605-d607, U+d609-d60f, U+d612-d613, U+d616-d61b, - U+d61d-d637, U+d63a-d63b, U+d63d-d63f, U+d641-d647, U+d64a-d64c, U+d64e-d653, - U+d656-d657, U+d659-d65b, U+d65d-d666, U+d668, U+d66a-d678; -} - -/* [4] */ -@font-face { - font-family: "Pretendard Variable"; - font-style: normal; - font-display: swap; - font-weight: 45 920; - src: local("Pretendard Variable"), - url(../../public/woff2-dynamic-subset/PretendardVariable.subset.4.woff2) - format("woff2-variations"); - unicode-range: U+d507, U+d509-d50b, U+d50d-d513, U+d515-d53b, U+d53e-d53f, - U+d541-d543, U+d545-d54c, U+d54e, U+d550, U+d552-d557, U+d55a-d55b, - U+d55d-d55f, U+d561-d564, U+d566-d567, U+d56a, U+d56c, U+d56e-d573, - U+d576-d577, U+d579-d583, U+d585-d586, U+d58a-d5a4, U+d5a6-d5bb; -} - -/* [5] */ -@font-face { - font-family: "Pretendard Variable"; - font-style: normal; - font-display: swap; - font-weight: 45 920; - src: local("Pretendard Variable"), - url(../../public/woff2-dynamic-subset/PretendardVariable.subset.5.woff2) - format("woff2-variations"); - unicode-range: U+d464-d477, U+d47a-d47b, U+d47d-d47f, U+d481-d487, U+d489-d48a, - U+d48c, U+d48e-d4e7, U+d4e9-d503, U+d505-d506; -} - -/* [6] */ -@font-face { - font-family: "Pretendard Variable"; - font-style: normal; - font-display: swap; - font-weight: 45 920; - src: local("Pretendard Variable"), - url(../../public/woff2-dynamic-subset/PretendardVariable.subset.6.woff2) - format("woff2-variations"); - unicode-range: U+d3bf-d3c7, U+d3ca-d3cf, U+d3d1-d3eb, U+d3ee-d3ef, U+d3f1-d3f3, - U+d3f5-d3fb, U+d3fd-d400, U+d402-d45b, U+d45d-d463; -} - -/* [7] */ -@font-face { - font-family: "Pretendard Variable"; - font-style: normal; - font-display: swap; - font-weight: 45 920; - src: local("Pretendard Variable"), - url(../../public/woff2-dynamic-subset/PretendardVariable.subset.7.woff2) - format("woff2-variations"); - unicode-range: U+d2ff, U+d302-d304, U+d306-d30b, U+d30f, U+d311-d313, - U+d315-d31b, U+d31e, U+d322-d324, U+d326-d327, U+d32a-d32b, U+d32d-d32f, - U+d331-d337, U+d339-d33c, U+d33e-d37b, U+d37e-d37f, U+d381-d383, U+d385-d38b, - U+d38e-d390, U+d392-d397, U+d39a-d39b, U+d39d-d39f, U+d3a1-d3a7, U+d3a9-d3aa, - U+d3ac, U+d3ae-d3b3, U+d3b5-d3b7, U+d3b9-d3bb, U+d3bd-d3be; -} - -/* [8] */ -@font-face { - font-family: "Pretendard Variable"; - font-style: normal; - font-display: swap; - font-weight: 45 920; - src: local("Pretendard Variable"), - url(../../public/woff2-dynamic-subset/PretendardVariable.subset.8.woff2) - format("woff2-variations"); - unicode-range: U+d257-d27f, U+d281-d29b, U+d29d-d29f, U+d2a1-d2ab, U+d2ad-d2b7, - U+d2ba-d2bb, U+d2bd-d2bf, U+d2c1-d2c7, U+d2c9-d2ef, U+d2f2-d2f3, U+d2f5-d2f7, - U+d2f9-d2fe; -} - -/* [9] */ -@font-face { - font-family: "Pretendard Variable"; - font-style: normal; - font-display: swap; - font-weight: 45 920; - src: local("Pretendard Variable"), - url(../../public/woff2-dynamic-subset/PretendardVariable.subset.9.woff2) - format("woff2-variations"); - unicode-range: U+d1b4, U+d1b6-d1f3, U+d1f5-d22b, U+d22e-d22f, U+d231-d233, - U+d235-d23b, U+d23d-d240, U+d242-d256; -} - -/* [10] */ -@font-face { - font-family: "Pretendard Variable"; - font-style: normal; - font-display: swap; - font-weight: 45 920; - src: local("Pretendard Variable"), - url(../../public/woff2-dynamic-subset/PretendardVariable.subset.10.woff2) - format("woff2-variations"); - unicode-range: U+d105-d12f, U+d132-d133, U+d135-d137, U+d139-d13f, U+d141-d142, - U+d144, U+d146-d14b, U+d14e-d14f, U+d151-d153, U+d155-d15b, U+d15e-d187, - U+d189-d19f, U+d1a2-d1a3, U+d1a5-d1a7, U+d1a9-d1af, U+d1b2-d1b3; -} - -/* [11] */ -@font-face { - font-family: "Pretendard Variable"; - font-style: normal; - font-display: swap; - font-weight: 45 920; - src: local("Pretendard Variable"), - url(../../public/woff2-dynamic-subset/PretendardVariable.subset.11.woff2) - format("woff2-variations"); - unicode-range: U+d04b-d04f, U+d051-d057, U+d059-d06b, U+d06d-d06f, U+d071-d073, - U+d075-d07b, U+d07e-d0a3, U+d0a6-d0a7, U+d0a9-d0ab, U+d0ad-d0b3, U+d0b6, - U+d0b8, U+d0ba-d0bf, U+d0c2-d0c3, U+d0c5-d0c7, U+d0c9-d0cf, U+d0d2, - U+d0d6-d0db, U+d0de-d0df, U+d0e1-d0e3, U+d0e5-d0eb, U+d0ee-d0f0, U+d0f2-d104; -} - -/* [12] */ -@font-face { - font-family: "Pretendard Variable"; - font-style: normal; - font-display: swap; - font-weight: 45 920; - src: local("Pretendard Variable"), - url(../../public/woff2-dynamic-subset/PretendardVariable.subset.12.woff2) - format("woff2-variations"); - unicode-range: U+cfa2-cfc3, U+cfc5-cfdf, U+cfe2-cfe3, U+cfe5-cfe7, U+cfe9-cff4, - U+cff6-cffb, U+cffd-cfff, U+d001-d003, U+d005-d017, U+d019-d033, U+d036-d037, - U+d039-d03b, U+d03d-d04a; -} - -/* [13] */ -@font-face { - font-family: "Pretendard Variable"; - font-style: normal; - font-display: swap; - font-weight: 45 920; - src: local("Pretendard Variable"), - url(../../public/woff2-dynamic-subset/PretendardVariable.subset.13.woff2) - format("woff2-variations"); - unicode-range: U+cef0-cef3, U+cef6, U+cef9-ceff, U+cf01-cf03, U+cf05-cf07, - U+cf09-cf0f, U+cf11-cf12, U+cf14-cf1b, U+cf1d-cf1f, U+cf21-cf2f, U+cf31-cf53, - U+cf56-cf57, U+cf59-cf5b, U+cf5d-cf63, U+cf66, U+cf68, U+cf6a-cf6f, - U+cf71-cf84, U+cf86-cf8b, U+cf8d-cfa1; -} - -/* [14] */ -@font-face { - font-family: "Pretendard Variable"; - font-style: normal; - font-display: swap; - font-weight: 45 920; - src: local("Pretendard Variable"), - url(../../public/woff2-dynamic-subset/PretendardVariable.subset.14.woff2) - format("woff2-variations"); - unicode-range: U+ce3c-ce57, U+ce5a-ce5b, U+ce5d-ce5f, U+ce61-ce67, U+ce6a, - U+ce6c, U+ce6e-ce73, U+ce76-ce77, U+ce79-ce7b, U+ce7d-ce83, U+ce85-ce88, - U+ce8a-ce8f, U+ce91-ce93, U+ce95-ce97, U+ce99-ce9f, U+cea2, U+cea4-ceab, - U+cead-cee3, U+cee6-cee7, U+cee9-ceeb, U+ceed-ceef; -} - -/* [15] */ -@font-face { - font-family: "Pretendard Variable"; - font-style: normal; - font-display: swap; - font-weight: 45 920; - src: local("Pretendard Variable"), - url(../../public/woff2-dynamic-subset/PretendardVariable.subset.15.woff2) - format("woff2-variations"); - unicode-range: U+cd92-cd93, U+cd96-cd97, U+cd99-cd9b, U+cd9d-cda3, U+cda6-cda8, - U+cdaa-cdaf, U+cdb1-cdc3, U+cdc5-cdcb, U+cdcd-cde7, U+cde9-ce03, U+ce05-ce1f, - U+ce22-ce34, U+ce36-ce3b; -} - -/* [16] */ -@font-face { - font-family: "Pretendard Variable"; - font-style: normal; - font-display: swap; - font-weight: 45 920; - src: local("Pretendard Variable"), - url(../../public/woff2-dynamic-subset/PretendardVariable.subset.16.woff2) - format("woff2-variations"); - unicode-range: U+ccef-cd07, U+cd0a-cd0b, U+cd0d-cd1a, U+cd1c, U+cd1e-cd2b, - U+cd2d-cd5b, U+cd5d-cd77, U+cd79-cd91; -} - -/* [17] */ -@font-face { - font-family: "Pretendard Variable"; - font-style: normal; - font-display: swap; - font-weight: 45 920; - src: local("Pretendard Variable"), - url(../../public/woff2-dynamic-subset/PretendardVariable.subset.17.woff2) - format("woff2-variations"); - unicode-range: U+cc3f-cc43, U+cc46-cc47, U+cc49-cc4b, U+cc4d-cc53, U+cc55-cc58, - U+cc5a-cc5f, U+cc61-cc97, U+cc9a-cc9b, U+cc9d-cc9f, U+cca1-cca7, U+ccaa, - U+ccac, U+ccae-ccb3, U+ccb6-ccb7, U+ccb9-ccbb, U+ccbd-cccf, U+ccd1-cce3, - U+cce5-ccee; -} - -/* [18] */ -@font-face { - font-family: "Pretendard Variable"; - font-style: normal; - font-display: swap; - font-weight: 45 920; - src: local("Pretendard Variable"), - url(../../public/woff2-dynamic-subset/PretendardVariable.subset.18.woff2) - format("woff2-variations"); - unicode-range: U+cb91-cbd3, U+cbd5-cbe3, U+cbe5-cc0b, U+cc0e-cc0f, U+cc11-cc13, - U+cc15-cc1b, U+cc1d-cc20, U+cc23-cc27, U+cc2a-cc2b, U+cc2d, U+cc2f, - U+cc31-cc37, U+cc3a, U+cc3c; -} - -/* [19] */ -@font-face { - font-family: "Pretendard Variable"; - font-style: normal; - font-display: swap; - font-weight: 45 920; - src: local("Pretendard Variable"), - url(../../public/woff2-dynamic-subset/PretendardVariable.subset.19.woff2) - format("woff2-variations"); - unicode-range: U+caf4-cb47, U+cb4a-cb90; -} - -/* [20] */ -@font-face { - font-family: "Pretendard Variable"; - font-style: normal; - font-display: swap; - font-weight: 45 920; - src: local("Pretendard Variable"), - url(../../public/woff2-dynamic-subset/PretendardVariable.subset.20.woff2) - format("woff2-variations"); - unicode-range: U+ca4a-ca4b, U+ca4e-ca4f, U+ca51-ca53, U+ca55-ca5b, U+ca5d-ca60, - U+ca62-ca83, U+ca85-cabb, U+cabe-cabf, U+cac1-cac3, U+cac5-cacb, U+cacd-cad0, - U+cad2, U+cad4-cad8, U+cada-caf3; -} - -/* [21] */ -@font-face { - font-family: "Pretendard Variable"; - font-style: normal; - font-display: swap; - font-weight: 45 920; - src: local("Pretendard Variable"), - url(../../public/woff2-dynamic-subset/PretendardVariable.subset.21.woff2) - format("woff2-variations"); - unicode-range: U+c996-c997, U+c99a-c99c, U+c99e-c9bf, U+c9c2-c9c3, U+c9c5-c9c7, - U+c9c9-c9cf, U+c9d2, U+c9d4, U+c9d7-c9d8, U+c9db, U+c9de-c9df, U+c9e1-c9e3, - U+c9e5-c9e6, U+c9e8-c9eb, U+c9ee-c9f0, U+c9f2-c9f7, U+c9f9-ca0b, U+ca0d-ca28, - U+ca2a-ca49; -} - -/* [22] */ -@font-face { - font-family: "Pretendard Variable"; - font-style: normal; - font-display: swap; - font-weight: 45 920; - src: local("Pretendard Variable"), - url(../../public/woff2-dynamic-subset/PretendardVariable.subset.22.woff2) - format("woff2-variations"); - unicode-range: U+c8e9-c8f4, U+c8f6-c8fb, U+c8fe-c8ff, U+c901-c903, U+c905-c90b, - U+c90e-c910, U+c912-c917, U+c919-c92b, U+c92d-c94f, U+c951-c953, U+c955-c96b, - U+c96d-c973, U+c975-c987, U+c98a-c98b, U+c98d-c98f, U+c991-c995; -} - -/* [23] */ -@font-face { - font-family: "Pretendard Variable"; - font-style: normal; - font-display: swap; - font-weight: 45 920; - src: local("Pretendard Variable"), - url(../../public/woff2-dynamic-subset/PretendardVariable.subset.23.woff2) - format("woff2-variations"); - unicode-range: U+c841-c84b, U+c84d-c86f, U+c872-c873, U+c875-c877, U+c879-c87f, - U+c882-c884, U+c887-c88a, U+c88d-c8c3, U+c8c5-c8df, U+c8e1-c8e8; -} - -/* [24] */ -@font-face { - font-family: "Pretendard Variable"; - font-style: normal; - font-display: swap; - font-weight: 45 920; - src: local("Pretendard Variable"), - url(../../public/woff2-dynamic-subset/PretendardVariable.subset.24.woff2) - format("woff2-variations"); - unicode-range: U+c779-c77b, U+c77e-c782, U+c786, U+c78b, U+c78d, U+c78f, - U+c792-c793, U+c795, U+c797, U+c799-c79f, U+c7a2, U+c7a7-c7ab, U+c7ae-c7bb, - U+c7bd-c7c0, U+c7c2-c7c7, U+c7c9-c7dc, U+c7de-c7ff, U+c802-c803, U+c805-c807, - U+c809, U+c80b-c80f, U+c812, U+c814, U+c817-c81b, U+c81e-c81f, U+c821-c823, - U+c825-c82e, U+c830-c837, U+c839-c83b, U+c83d-c840; -} - -/* [25] */ -@font-face { - font-family: "Pretendard Variable"; - font-style: normal; - font-display: swap; - font-weight: 45 920; - src: local("Pretendard Variable"), - url(../../public/woff2-dynamic-subset/PretendardVariable.subset.25.woff2) - format("woff2-variations"); - unicode-range: U+c6bb-c6bf, U+c6c2, U+c6c4, U+c6c6-c6cb, U+c6ce-c6cf, - U+c6d1-c6d3, U+c6d5-c6db, U+c6dd-c6df, U+c6e1-c6e7, U+c6e9-c6eb, U+c6ed-c6ef, - U+c6f1-c6f8, U+c6fa-c703, U+c705-c707, U+c709-c70b, U+c70d-c716, U+c718, - U+c71a-c71f, U+c722-c723, U+c725-c727, U+c729-c734, U+c736-c73b, U+c73e-c73f, - U+c741-c743, U+c745-c74b, U+c74e-c750, U+c752-c757, U+c759-c773, U+c776-c777; -} - -/* [26] */ -@font-face { - font-family: "Pretendard Variable"; - font-style: normal; - font-display: swap; - font-weight: 45 920; - src: local("Pretendard Variable"), - url(../../public/woff2-dynamic-subset/PretendardVariable.subset.26.woff2) - format("woff2-variations"); - unicode-range: U+c5f5-c5fb, U+c5fe, U+c602-c605, U+c607, U+c609-c60f, - U+c611-c61a, U+c61c-c623, U+c626-c627, U+c629-c62b, U+c62d, U+c62f-c632, - U+c636, U+c638, U+c63a-c63f, U+c642-c643, U+c645-c647, U+c649-c652, - U+c656-c65b, U+c65d-c65f, U+c661-c663, U+c665-c677, U+c679-c67b, U+c67d-c693, - U+c696-c697, U+c699-c69b, U+c69d-c6a3, U+c6a6, U+c6a8, U+c6aa-c6af, - U+c6b2-c6b3, U+c6b5-c6b7, U+c6b9-c6ba; -} - -/* [27] */ -@font-face { - font-family: "Pretendard Variable"; - font-style: normal; - font-display: swap; - font-weight: 45 920; - src: local("Pretendard Variable"), - url(../../public/woff2-dynamic-subset/PretendardVariable.subset.27.woff2) - format("woff2-variations"); - unicode-range: U+c517-c527, U+c52a-c52b, U+c52d-c52f, U+c531-c538, U+c53a, - U+c53c, U+c53e-c543, U+c546-c547, U+c54b, U+c54d-c552, U+c556, U+c55a-c55b, - U+c55d, U+c55f, U+c562-c563, U+c565-c567, U+c569-c56f, U+c572, U+c574, - U+c576-c57b, U+c57e-c57f, U+c581-c583, U+c585-c586, U+c588-c58b, U+c58e, - U+c590, U+c592-c596, U+c599-c5b3, U+c5b6-c5b7, U+c5ba, U+c5be-c5c3, - U+c5ca-c5cb, U+c5cd, U+c5cf, U+c5d2-c5d3, U+c5d5-c5d7, U+c5d9-c5df, - U+c5e1-c5e2, U+c5e4, U+c5e6-c5eb, U+c5ef, U+c5f1-c5f3; -} - -/* [28] */ -@font-face { - font-family: "Pretendard Variable"; - font-style: normal; - font-display: swap; - font-weight: 45 920; - src: local("Pretendard Variable"), - url(../../public/woff2-dynamic-subset/PretendardVariable.subset.28.woff2) - format("woff2-variations"); - unicode-range: U+c475-c4ef, U+c4f2-c4f3, U+c4f5-c4f7, U+c4f9-c4ff, U+c502-c50b, - U+c50d-c516; -} - -/* [29] */ -@font-face { - font-family: "Pretendard Variable"; - font-style: normal; - font-display: swap; - font-weight: 45 920; - src: local("Pretendard Variable"), - url(../../public/woff2-dynamic-subset/PretendardVariable.subset.29.woff2) - format("woff2-variations"); - unicode-range: U+c3d0-c3d7, U+c3da-c3db, U+c3dd-c3de, U+c3e1-c3ec, U+c3ee-c3f3, - U+c3f5-c42b, U+c42d-c463, U+c466-c474; -} - -/* [30] */ -@font-face { - font-family: "Pretendard Variable"; - font-style: normal; - font-display: swap; - font-weight: 45 920; - src: local("Pretendard Variable"), - url(../../public/woff2-dynamic-subset/PretendardVariable.subset.30.woff2) - format("woff2-variations"); - unicode-range: U+c32b-c367, U+c36a-c36b, U+c36d-c36f, U+c371-c377, U+c37a-c37b, - U+c37e-c383, U+c385-c387, U+c389-c3cf; -} - -/* [31] */ -@font-face { - font-family: "Pretendard Variable"; - font-style: normal; - font-display: swap; - font-weight: 45 920; - src: local("Pretendard Variable"), - url(../../public/woff2-dynamic-subset/PretendardVariable.subset.31.woff2) - format("woff2-variations"); - unicode-range: U+c26a-c26b, U+c26d-c26f, U+c271-c273, U+c275-c27b, U+c27e-c287, - U+c289-c28f, U+c291-c297, U+c299-c29a, U+c29c-c2a3, U+c2a5-c2a7, U+c2a9-c2ab, - U+c2ad-c2b3, U+c2b6, U+c2b8, U+c2ba-c2bb, U+c2bd-c2db, U+c2de-c2df, - U+c2e1-c2e2, U+c2e5-c2ea, U+c2ee, U+c2f0, U+c2f2-c2f5, U+c2f7, U+c2fa-c2fb, - U+c2fd-c2ff, U+c301-c307, U+c309-c30c, U+c30e-c312, U+c315-c323, U+c325-c328, - U+c32a; -} - -/* [32] */ -@font-face { - font-family: "Pretendard Variable"; - font-style: normal; - font-display: swap; - font-weight: 45 920; - src: local("Pretendard Variable"), - url(../../public/woff2-dynamic-subset/PretendardVariable.subset.32.woff2) - format("woff2-variations"); - unicode-range: U+c1bc-c1c3, U+c1c5-c1df, U+c1e1-c1fb, U+c1fd-c203, U+c205-c20c, - U+c20e, U+c210-c217, U+c21a-c21b, U+c21d-c21e, U+c221-c227, U+c229-c22a, - U+c22c, U+c22e, U+c230, U+c233-c24f, U+c251-c257, U+c259-c269; -} - -/* [33] */ -@font-face { - font-family: "Pretendard Variable"; - font-style: normal; - font-display: swap; - font-weight: 45 920; - src: local("Pretendard Variable"), - url(../../public/woff2-dynamic-subset/PretendardVariable.subset.33.woff2) - format("woff2-variations"); - unicode-range: U+c101-c11b, U+c11f, U+c121-c123, U+c125-c12b, U+c12e, - U+c132-c137, U+c13a-c13b, U+c13d-c13f, U+c141-c147, U+c14a, U+c14c-c153, - U+c155-c157, U+c159-c15b, U+c15d-c166, U+c169-c16f, U+c171-c177, U+c179-c18b, - U+c18e-c18f, U+c191-c193, U+c195-c19b, U+c19d-c19e, U+c1a0, U+c1a2-c1a4, - U+c1a6-c1bb; -} - -/* [34] */ -@font-face { - font-family: "Pretendard Variable"; - font-style: normal; - font-display: swap; - font-weight: 45 920; - src: local("Pretendard Variable"), - url(../../public/woff2-dynamic-subset/PretendardVariable.subset.34.woff2) - format("woff2-variations"); - unicode-range: U+c049-c057, U+c059-c05b, U+c05d-c05f, U+c061-c067, U+c069-c08f, - U+c091-c0ab, U+c0ae-c0af, U+c0b1-c0b3, U+c0b5, U+c0b7-c0bb, U+c0be, - U+c0c2-c0c7, U+c0ca-c0cb, U+c0cd-c0cf, U+c0d1-c0d7, U+c0d9-c0da, U+c0dc, - U+c0de-c0e3, U+c0e5-c0eb, U+c0ed-c0f3, U+c0f6, U+c0f8, U+c0fa-c0ff; -} - -/* [35] */ -@font-face { - font-family: "Pretendard Variable"; - font-style: normal; - font-display: swap; - font-weight: 45 920; - src: local("Pretendard Variable"), - url(../../public/woff2-dynamic-subset/PretendardVariable.subset.35.woff2) - format("woff2-variations"); - unicode-range: U+bfa7-bfaf, U+bfb1-bfc4, U+bfc6-bfcb, U+bfce-bfcf, U+bfd1-bfd3, - U+bfd5-bfdb, U+bfdd-c048; -} - -/* [36] */ -@font-face { - font-family: "Pretendard Variable"; - font-style: normal; - font-display: swap; - font-weight: 45 920; - src: local("Pretendard Variable"), - url(../../public/woff2-dynamic-subset/PretendardVariable.subset.36.woff2) - format("woff2-variations"); - unicode-range: U+bf07, U+bf09-bf3f, U+bf41-bf4f, U+bf52-bf54, U+bf56-bfa6; -} - -/* [37] */ -@font-face { - font-family: "Pretendard Variable"; - font-style: normal; - font-display: swap; - font-weight: 45 920; - src: local("Pretendard Variable"), - url(../../public/woff2-dynamic-subset/PretendardVariable.subset.37.woff2) - format("woff2-variations"); - unicode-range: U+be56, U+be58, U+be5c-be5f, U+be62-be63, U+be65-be67, - U+be69-be74, U+be76-be7b, U+be7e-be7f, U+be81-be8e, U+be90, U+be92-bea7, - U+bea9-becf, U+bed2-bed3, U+bed5-bed6, U+bed9-bee3, U+bee6-bf06; -} - -/* [38] */ -@font-face { - font-family: "Pretendard Variable"; - font-style: normal; - font-display: swap; - font-weight: 45 920; - src: local("Pretendard Variable"), - url(../../public/woff2-dynamic-subset/PretendardVariable.subset.38.woff2) - format("woff2-variations"); - unicode-range: U+bdb0-bdd3, U+bdd5-bdef, U+bdf1-be0b, U+be0d-be0f, U+be11-be13, - U+be15-be43, U+be46-be47, U+be49-be4b, U+be4d-be53; -} - -/* [39] */ -@font-face { - font-family: "Pretendard Variable"; - font-style: normal; - font-display: swap; - font-weight: 45 920; - src: local("Pretendard Variable"), - url(../../public/woff2-dynamic-subset/PretendardVariable.subset.39.woff2) - format("woff2-variations"); - unicode-range: U+bd03, U+bd06, U+bd08, U+bd0a-bd0f, U+bd11-bd22, U+bd25-bd47, - U+bd49-bd58, U+bd5a-bd7f, U+bd82-bd83, U+bd85-bd87, U+bd8a-bd8f, U+bd91-bd92, - U+bd94, U+bd96-bd98, U+bd9a-bdaf; -} - -/* [40] */ -@font-face { - font-family: "Pretendard Variable"; - font-style: normal; - font-display: swap; - font-weight: 45 920; - src: local("Pretendard Variable"), - url(../../public/woff2-dynamic-subset/PretendardVariable.subset.40.woff2) - format("woff2-variations"); - unicode-range: U+bc4e-bc83, U+bc86-bc87, U+bc89-bc8b, U+bc8d-bc93, U+bc96, - U+bc98, U+bc9b-bc9f, U+bca2-bca3, U+bca5-bca7, U+bca9-bcb2, U+bcb4-bcbb, - U+bcbe-bcbf, U+bcc1-bcc3, U+bcc5-bccc, U+bcce-bcd0, U+bcd2-bcd4, U+bcd6-bcf3, - U+bcf7, U+bcf9-bcfb, U+bcfd-bd02; -} - -/* [41] */ -@font-face { - font-family: "Pretendard Variable"; - font-style: normal; - font-display: swap; - font-weight: 45 920; - src: local("Pretendard Variable"), - url(../../public/woff2-dynamic-subset/PretendardVariable.subset.41.woff2) - format("woff2-variations"); - unicode-range: U+bb90-bba3, U+bba5-bbab, U+bbad-bbbf, U+bbc1-bbf7, U+bbfa-bbfb, - U+bbfd-bbfe, U+bc01-bc07, U+bc09-bc0a, U+bc0e, U+bc10, U+bc12-bc13, U+bc17, - U+bc19-bc1a, U+bc1e, U+bc20-bc23, U+bc26, U+bc28, U+bc2a-bc2c, U+bc2e-bc2f, - U+bc32-bc33, U+bc35-bc37, U+bc39-bc3f, U+bc41-bc42, U+bc44, U+bc46-bc48, - U+bc4a-bc4d; -} - -/* [42] */ -@font-face { - font-family: "Pretendard Variable"; - font-style: normal; - font-display: swap; - font-weight: 45 920; - src: local("Pretendard Variable"), - url(../../public/woff2-dynamic-subset/PretendardVariable.subset.42.woff2) - format("woff2-variations"); - unicode-range: U+bae6-bafb, U+bafd-bb17, U+bb19-bb33, U+bb37, U+bb39-bb3a, - U+bb3d-bb43, U+bb45-bb46, U+bb48, U+bb4a-bb4f, U+bb51-bb53, U+bb55-bb57, - U+bb59-bb62, U+bb64-bb8f; -} - -/* [43] */ -@font-face { - font-family: "Pretendard Variable"; - font-style: normal; - font-display: swap; - font-weight: 45 920; - src: local("Pretendard Variable"), - url(../../public/woff2-dynamic-subset/PretendardVariable.subset.43.woff2) - format("woff2-variations"); - unicode-range: U+ba30-ba37, U+ba3a-ba3b, U+ba3d-ba3f, U+ba41-ba47, U+ba49-ba4a, - U+ba4c, U+ba4e-ba53, U+ba56-ba57, U+ba59-ba5b, U+ba5d-ba63, U+ba65-ba66, - U+ba68-ba6f, U+ba71-ba73, U+ba75-ba77, U+ba79-ba84, U+ba86, U+ba88-baa7, - U+baaa, U+baad-baaf, U+bab1-bab7, U+baba, U+babc, U+babe-bae5; -} - -/* [44] */ -@font-face { - font-family: "Pretendard Variable"; - font-style: normal; - font-display: swap; - font-weight: 45 920; - src: local("Pretendard Variable"), - url(../../public/woff2-dynamic-subset/PretendardVariable.subset.44.woff2) - format("woff2-variations"); - unicode-range: U+b96e-b973, U+b976-b977, U+b979-b97b, U+b97d-b983, U+b986, - U+b988, U+b98a-b98d, U+b98f-b9ab, U+b9ae-b9af, U+b9b1-b9b3, U+b9b5-b9bb, - U+b9be, U+b9c0, U+b9c2-b9c7, U+b9ca-b9cb, U+b9cd, U+b9d2-b9d7, U+b9da, - U+b9dc, U+b9df-b9e0, U+b9e2, U+b9e6-b9e7, U+b9e9-b9f3, U+b9f6, U+b9f8, - U+b9fb-ba2f; -} - -/* [45] */ -@font-face { - font-family: "Pretendard Variable"; - font-style: normal; - font-display: swap; - font-weight: 45 920; - src: local("Pretendard Variable"), - url(../../public/woff2-dynamic-subset/PretendardVariable.subset.45.woff2) - format("woff2-variations"); - unicode-range: U+b8bf-b8cb, U+b8cd-b8e0, U+b8e2-b8e7, U+b8ea-b8eb, U+b8ed-b8ef, - U+b8f1-b8f7, U+b8fa, U+b8fc, U+b8fe-b903, U+b905-b917, U+b919-b91f, - U+b921-b93b, U+b93d-b957, U+b95a-b95b, U+b95d-b95f, U+b961-b967, U+b969-b96c; -} - -/* [46] */ -@font-face { - font-family: "Pretendard Variable"; - font-style: normal; - font-display: swap; - font-weight: 45 920; - src: local("Pretendard Variable"), - url(../../public/woff2-dynamic-subset/PretendardVariable.subset.46.woff2) - format("woff2-variations"); - unicode-range: U+b80d-b80f, U+b811-b817, U+b81a, U+b81c-b823, U+b826-b827, - U+b829-b82b, U+b82d-b833, U+b836, U+b83a-b83f, U+b841-b85b, U+b85e-b85f, - U+b861-b863, U+b865-b86b, U+b86e, U+b870, U+b872-b8af, U+b8b1-b8be; -} - -/* [47] */ -@font-face { - font-family: "Pretendard Variable"; - font-style: normal; - font-display: swap; - font-weight: 45 920; - src: local("Pretendard Variable"), - url(../../public/woff2-dynamic-subset/PretendardVariable.subset.47.woff2) - format("woff2-variations"); - unicode-range: U+b74d-b75f, U+b761-b763, U+b765-b774, U+b776-b77b, U+b77e-b77f, - U+b781-b783, U+b785-b78b, U+b78e, U+b792-b796, U+b79a-b79b, U+b79d-b7a7, - U+b7aa, U+b7ae-b7b3, U+b7b6-b7c8, U+b7ca-b7eb, U+b7ee-b7ef, U+b7f1-b7f3, - U+b7f5-b7fb, U+b7fe, U+b802-b806, U+b80a-b80b; -} - -/* [48] */ -@font-face { - font-family: "Pretendard Variable"; - font-style: normal; - font-display: swap; - font-weight: 45 920; - src: local("Pretendard Variable"), - url(../../public/woff2-dynamic-subset/PretendardVariable.subset.48.woff2) - format("woff2-variations"); - unicode-range: U+b6a7-b6aa, U+b6ac-b6b0, U+b6b2-b6ef, U+b6f1-b727, U+b72a-b72b, - U+b72d-b72e, U+b731-b737, U+b739-b73a, U+b73c-b743, U+b745-b74c; -} - -/* [49] */ -@font-face { - font-family: "Pretendard Variable"; - font-style: normal; - font-display: swap; - font-weight: 45 920; - src: local("Pretendard Variable"), - url(../../public/woff2-dynamic-subset/PretendardVariable.subset.49.woff2) - format("woff2-variations"); - unicode-range: U+b605-b60f, U+b612-b617, U+b619-b624, U+b626-b69b, U+b69e-b6a3, - U+b6a5-b6a6; -} - -/* [50] */ -@font-face { - font-family: "Pretendard Variable"; - font-style: normal; - font-display: swap; - font-weight: 45 920; - src: local("Pretendard Variable"), - url(../../public/woff2-dynamic-subset/PretendardVariable.subset.50.woff2) - format("woff2-variations"); - unicode-range: U+b55f, U+b562-b583, U+b585-b59f, U+b5a2-b5a3, U+b5a5-b5a7, - U+b5a9-b5b2, U+b5b5-b5ba, U+b5bd-b604; -} - -/* [51] */ -@font-face { - font-family: "Pretendard Variable"; - font-style: normal; - font-display: swap; - font-weight: 45 920; - src: local("Pretendard Variable"), - url(../../public/woff2-dynamic-subset/PretendardVariable.subset.51.woff2) - format("woff2-variations"); - unicode-range: U+b4a5-b4b6, U+b4b8-b4bf, U+b4c1-b4c7, U+b4c9-b4db, U+b4de-b4df, - U+b4e1-b4e2, U+b4e5-b4eb, U+b4ee, U+b4f0, U+b4f2-b513, U+b516-b517, - U+b519-b51a, U+b51d-b523, U+b526, U+b528, U+b52b-b52f, U+b532-b533, - U+b535-b537, U+b539-b53f, U+b541-b544, U+b546-b54b, U+b54d-b54f, U+b551-b55b, - U+b55d-b55e; -} - -/* [52] */ -@font-face { - font-family: "Pretendard Variable"; - font-style: normal; - font-display: swap; - font-weight: 45 920; - src: local("Pretendard Variable"), - url(../../public/woff2-dynamic-subset/PretendardVariable.subset.52.woff2) - format("woff2-variations"); - unicode-range: U+b3f8-b3fb, U+b3fd-b40f, U+b411-b417, U+b419-b41b, U+b41d-b41f, - U+b421-b427, U+b42a-b42b, U+b42d-b44f, U+b452-b453, U+b455-b457, U+b459-b45f, - U+b462-b464, U+b466-b46b, U+b46d-b47f, U+b481-b4a3; -} - -/* [53] */ -@font-face { - font-family: "Pretendard Variable"; - font-style: normal; - font-display: swap; - font-weight: 45 920; - src: local("Pretendard Variable"), - url(../../public/woff2-dynamic-subset/PretendardVariable.subset.53.woff2) - format("woff2-variations"); - unicode-range: U+b342-b353, U+b356-b357, U+b359-b35b, U+b35d-b35e, U+b360-b363, - U+b366, U+b368, U+b36a-b36d, U+b36f, U+b372-b373, U+b375-b377, U+b379-b37f, - U+b381-b382, U+b384, U+b386-b38b, U+b38d-b3c3, U+b3c6-b3c7, U+b3c9-b3ca, - U+b3cd-b3d3, U+b3d6, U+b3d8, U+b3da-b3f7; -} - -/* [54] */ -@font-face { - font-family: "Pretendard Variable"; - font-style: normal; - font-display: swap; - font-weight: 45 920; - src: local("Pretendard Variable"), - url(../../public/woff2-dynamic-subset/PretendardVariable.subset.54.woff2) - format("woff2-variations"); - unicode-range: U+b27c-b283, U+b285-b28f, U+b292-b293, U+b295-b297, U+b29a-b29f, - U+b2a1-b2a4, U+b2a7-b2a9, U+b2ab, U+b2ad-b2c7, U+b2ca-b2cb, U+b2cd-b2cf, - U+b2d1-b2d7, U+b2da, U+b2dc, U+b2de-b2e3, U+b2e7, U+b2e9-b2ea, U+b2ef-b2f3, - U+b2f6, U+b2f8, U+b2fa-b2fb, U+b2fd-b2fe, U+b302-b303, U+b305-b307, - U+b309-b30f, U+b312, U+b316-b31b, U+b31d-b341; -} - -/* [55] */ -@font-face { - font-family: "Pretendard Variable"; - font-style: normal; - font-display: swap; - font-weight: 45 920; - src: local("Pretendard Variable"), - url(../../public/woff2-dynamic-subset/PretendardVariable.subset.55.woff2) - format("woff2-variations"); - unicode-range: U+b1d6-b1e7, U+b1e9-b1fc, U+b1fe-b203, U+b206-b207, U+b209-b20b, - U+b20d-b213, U+b216-b21f, U+b221-b257, U+b259-b273, U+b275-b27b; -} - -/* [56] */ -@font-face { - font-family: "Pretendard Variable"; - font-style: normal; - font-display: swap; - font-weight: 45 920; - src: local("Pretendard Variable"), - url(../../public/woff2-dynamic-subset/PretendardVariable.subset.56.woff2) - format("woff2-variations"); - unicode-range: U+b120-b122, U+b126-b127, U+b129-b12b, U+b12d-b133, U+b136, - U+b138, U+b13a-b13f, U+b142-b143, U+b145-b14f, U+b151-b153, U+b156-b157, - U+b159-b177, U+b17a-b17b, U+b17d-b17f, U+b181-b187, U+b189-b18c, U+b18e-b191, - U+b195-b1a7, U+b1a9-b1cb, U+b1cd-b1d5; -} - -/* [57] */ -@font-face { - font-family: "Pretendard Variable"; - font-style: normal; - font-display: swap; - font-weight: 45 920; - src: local("Pretendard Variable"), - url(../../public/woff2-dynamic-subset/PretendardVariable.subset.57.woff2) - format("woff2-variations"); - unicode-range: U+b05f-b07b, U+b07e-b07f, U+b081-b083, U+b085-b08b, U+b08d-b097, - U+b09b, U+b09d-b09f, U+b0a2-b0a7, U+b0aa, U+b0b0, U+b0b2, U+b0b6-b0b7, - U+b0b9-b0bb, U+b0bd-b0c3, U+b0c6-b0c7, U+b0ca-b0cf, U+b0d1-b0df, U+b0e1-b0e4, - U+b0e6-b107, U+b10a-b10b, U+b10d-b10f, U+b111-b112, U+b114-b117, U+b119-b11a, - U+b11c-b11f; -} - -/* [58] */ -@font-face { - font-family: "Pretendard Variable"; - font-style: normal; - font-display: swap; - font-weight: 45 920; - src: local("Pretendard Variable"), - url(../../public/woff2-dynamic-subset/PretendardVariable.subset.58.woff2) - format("woff2-variations"); - unicode-range: U+afac-afb7, U+afba-afbb, U+afbd-afbf, U+afc1-afc6, U+afca-afcc, - U+afce-afd3, U+afd5-afe7, U+afe9-afef, U+aff1-b00b, U+b00d-b00f, U+b011-b013, - U+b015-b01b, U+b01d-b027, U+b029-b043, U+b045-b047, U+b049, U+b04b, - U+b04d-b052, U+b055-b056, U+b058-b05c, U+b05e; -} - -/* [59] */ -@font-face { - font-family: "Pretendard Variable"; - font-style: normal; - font-display: swap; - font-weight: 45 920; - src: local("Pretendard Variable"), - url(../../public/woff2-dynamic-subset/PretendardVariable.subset.59.woff2) - format("woff2-variations"); - unicode-range: U+af03-af07, U+af09-af2b, U+af2e-af33, U+af35-af3b, U+af3e-af40, - U+af44-af47, U+af4a-af5c, U+af5e-af63, U+af65-af7f, U+af81-afab; -} - -/* [60] */ -@font-face { - font-family: "Pretendard Variable"; - font-style: normal; - font-display: swap; - font-weight: 45 920; - src: local("Pretendard Variable"), - url(../../public/woff2-dynamic-subset/PretendardVariable.subset.60.woff2) - format("woff2-variations"); - unicode-range: U+ae56-ae5b, U+ae5e-ae60, U+ae62-ae64, U+ae66-ae67, U+ae69-ae6b, - U+ae6d-ae83, U+ae85-aebb, U+aebf, U+aec1-aec3, U+aec5-aecb, U+aece, U+aed0, - U+aed2-aed7, U+aed9-aef3, U+aef5-af02; -} - -/* [61] */ -@font-face { - font-family: "Pretendard Variable"; - font-style: normal; - font-display: swap; - font-weight: 45 920; - src: local("Pretendard Variable"), - url(../../public/woff2-dynamic-subset/PretendardVariable.subset.61.woff2) - format("woff2-variations"); - unicode-range: U+ad9c-ada3, U+ada5-adbf, U+adc1-adc3, U+adc5-adc7, U+adc9-add2, - U+add4-addb, U+addd-addf, U+ade1-ade3, U+ade5-adf7, U+adfa-adfb, U+adfd-adff, - U+ae02-ae07, U+ae0a, U+ae0c, U+ae0e-ae13, U+ae15-ae2f, U+ae31-ae33, - U+ae35-ae37, U+ae39-ae3f, U+ae42, U+ae44, U+ae46-ae49, U+ae4b, U+ae4f, - U+ae51-ae53, U+ae55; -} - -/* [62] */ -@font-face { - font-family: "Pretendard Variable"; - font-style: normal; - font-display: swap; - font-weight: 45 920; - src: local("Pretendard Variable"), - url(../../public/woff2-dynamic-subset/PretendardVariable.subset.62.woff2) - format("woff2-variations"); - unicode-range: U+ace2-ace3, U+ace5-ace6, U+ace9-acef, U+acf2, U+acf4, - U+acf7-acfb, U+acfe-acff, U+ad01-ad03, U+ad05-ad0b, U+ad0d-ad10, U+ad12-ad1b, - U+ad1d-ad33, U+ad35-ad48, U+ad4a-ad4f, U+ad51-ad6b, U+ad6e-ad6f, U+ad71-ad72, - U+ad77-ad7c, U+ad7e, U+ad80, U+ad82-ad87, U+ad89-ad8b, U+ad8d-ad8f, - U+ad91-ad9b; -} - -/* [63] */ -@font-face { - font-family: "Pretendard Variable"; - font-style: normal; - font-display: swap; - font-weight: 45 920; - src: local("Pretendard Variable"), - url(../../public/woff2-dynamic-subset/PretendardVariable.subset.63.woff2) - format("woff2-variations"); - unicode-range: U+ac25-ac2c, U+ac2e, U+ac30, U+ac32-ac37, U+ac39-ac3f, - U+ac41-ac4c, U+ac4e-ac6f, U+ac72-ac73, U+ac75-ac76, U+ac79-ac7f, U+ac82, - U+ac84-ac88, U+ac8a-ac8b, U+ac8d-ac8f, U+ac91-ac93, U+ac95-ac9b, U+ac9d-ac9e, - U+aca1-aca7, U+acab, U+acad-acaf, U+acb1-acb7, U+acba-acbb, U+acbe-acc0, - U+acc2-acc3, U+acc5-acdf; -} - -/* [64] */ -@font-face { - font-family: "Pretendard Variable"; - font-style: normal; - font-display: swap; - font-weight: 45 920; - src: local("Pretendard Variable"), - url(../../public/woff2-dynamic-subset/PretendardVariable.subset.64.woff2) - format("woff2-variations"); - unicode-range: U+99df, U+99ed, U+99f1, U+99ff, U+9a01, U+9a08, U+9a0e-9a0f, - U+9a19, U+9a2b, U+9a30, U+9a36-9a37, U+9a40, U+9a43, U+9a45, U+9a4d, U+9a55, - U+9a57, U+9a5a-9a5b, U+9a5f, U+9a62, U+9a65, U+9a69-9a6a, U+9aa8, U+9ab8, - U+9ad3, U+9ae5, U+9aee, U+9b1a, U+9b27, U+9b2a, U+9b31, U+9b3c, U+9b41-9b45, - U+9b4f, U+9b54, U+9b5a, U+9b6f, U+9b8e, U+9b91, U+9b9f, U+9bab, U+9bae, - U+9bc9, U+9bd6, U+9be4, U+9be8, U+9c0d, U+9c10, U+9c12, U+9c15, U+9c25, - U+9c32, U+9c3b, U+9c47, U+9c49, U+9c57, U+9ce5, U+9ce7, U+9ce9, U+9cf3-9cf4, - U+9cf6, U+9d09, U+9d1b, U+9d26, U+9d28, U+9d3b, U+9d51, U+9d5d, U+9d60-9d61, - U+9d6c, U+9d72, U+9da9, U+9daf, U+9db4, U+9dc4, U+9dd7, U+9df2, U+9df8-9dfa, - U+9e1a, U+9e1e, U+9e75, U+9e79, U+9e7d, U+9e7f, U+9e92-9e93, U+9e97, U+9e9d, - U+9e9f, U+9ea5, U+9eb4-9eb5, U+9ebb, U+9ebe, U+9ec3, U+9ecd-9ece, U+9ed4, - U+9ed8, U+9edb-9edc, U+9ede, U+9ee8, U+9ef4, U+9f07-9f08, U+9f0e, U+9f13, - U+9f20, U+9f3b, U+9f4a-9f4b, U+9f4e, U+9f52, U+9f5f, U+9f61, U+9f67, U+9f6a, - U+9f6c, U+9f77, U+9f8d, U+9f90, U+9f95, U+9f9c, U+ac02-ac03, U+ac05-ac06, - U+ac09-ac0f, U+ac17-ac18, U+ac1b, U+ac1e-ac1f, U+ac21-ac23; -} - -/* [65] */ -@font-face { - font-family: "Pretendard Variable"; - font-style: normal; - font-display: swap; - font-weight: 45 920; - src: local("Pretendard Variable"), - url(../../public/woff2-dynamic-subset/PretendardVariable.subset.65.woff2) - format("woff2-variations"); - unicode-range: U+338c-339c, U+339f-33a0, U+33a2-33cb, U+33cf-33d0, U+33d3, - U+33d6, U+33d8, U+33db-33dd, U+4e01, U+4e03, U+4e07-4e08, U+4e11, - U+4e14-4e15, U+4e18-4e19, U+4e1e, U+4e32, U+4e38-4e39, U+4e42-4e43, U+4e45, - U+4e4d-4e4f, U+4e56, U+4e58-4e59, U+4e5d-4e5e, U+4e6b, U+4e6d, U+4e73, - U+4e76-4e77, U+4e7e, U+4e82, U+4e86, U+4e88, U+4e8e, U+4e90-4e92, - U+4e94-4e95, U+4e98, U+4e9b, U+4e9e, U+4ea1-4ea2, U+4ea4-4ea6, U+4ea8, - U+4eab, U+4ead-4eae, U+4eb6, U+4ec0-4ec1, U+4ec4, U+4ec7, U+4ecb, U+4ecd, - U+4ed4-4ed5, U+4ed7-4ed9, U+4edd, U+4edf, U+4ee4, U+4ef0, U+4ef2, - U+4ef6-4ef7, U+4efb, U+4f01, U+4f09, U+4f0b, U+4f0d-4f11, U+4f2f, U+4f34, - U+4f36, U+4f38, U+4f3a, U+4f3c-4f3d; -} - -/* [66] */ -@font-face { - font-family: "Pretendard Variable"; - font-style: normal; - font-display: swap; - font-weight: 45 920; - src: local("Pretendard Variable"), - url(../../public/woff2-dynamic-subset/PretendardVariable.subset.66.woff2) - format("woff2-variations"); - unicode-range: U+3136, U+3138, U+313a-3140, U+3143-3144, U+3150, U+3152, - U+3154-3156, U+3158-315b, U+315d-315f, U+3162, U+3164-318c, U+318e, - U+3200-321b, U+3231, U+3239, U+3251-325a, U+3260-327b, U+327e-327f, - U+328a-3290, U+3294, U+329e, U+32a5, U+3380-3384, U+3388-338b; -} - -/* [67] */ -@font-face { - font-family: "Pretendard Variable"; - font-style: normal; - font-display: swap; - font-weight: 45 920; - src: local("Pretendard Variable"), - url(../../public/woff2-dynamic-subset/PretendardVariable.subset.67.woff2) - format("woff2-variations"); - unicode-range: U+2f7d, U+2f7f-2f8b, U+2f8e-2f90, U+2f92-2f97, U+2f99-2fa0, - U+2fa2-2fa3, U+2fa5-2fa9, U+2fac-2fb1, U+2fb3-2fbc, U+2fc1-2fca, U+2fcd-2fd4, - U+3003, U+3012-3019, U+301c, U+301e-3020, U+3036, U+3041, U+3043, U+3045, - U+3047, U+3049, U+304e, U+3050, U+3052, U+3056, U+305a, U+305c, U+305e, - U+3062, U+3065, U+306c, U+3070-307d, U+3080, U+3085, U+3087, U+308e, - U+3090-3091, U+30a1, U+30a5, U+30a9, U+30ae, U+30b1-30b2, U+30b4, U+30b6, - U+30bc-30be, U+30c2, U+30c5, U+30cc, U+30d2, U+30d4, U+30d8-30dd, U+30e4, - U+30e6, U+30e8, U+30ee, U+30f0-30f2, U+30f4-30f6, U+3133, U+3135; -} - -/* [68] */ -@font-face { - font-family: "Pretendard Variable"; - font-style: normal; - font-display: swap; - font-weight: 45 920; - src: local("Pretendard Variable"), - url(../../public/woff2-dynamic-subset/PretendardVariable.subset.68.woff2) - format("woff2-variations"); - unicode-range: U+2541-254b, U+25a4-25a9, U+25b1, U+25b5, U+25b9, U+25bf, - U+25c1, U+25c3, U+25c9-25ca, U+25cc, U+25ce, U+25d0-25d1, U+25e6, U+25ef, - U+260f, U+261d, U+261f, U+262f, U+2660, U+2664, U+2667-2669, U+266d, U+266f, - U+2716, U+271a, U+273d, U+2756, U+2776-277f, U+278a-2793, U+2963, U+2965, - U+2ac5-2ac6, U+2acb-2acc, U+2f00, U+2f04, U+2f06, U+2f08, U+2f0a-2f0b, - U+2f11-2f12, U+2f14, U+2f17-2f18, U+2f1c-2f1d, U+2f1f-2f20, U+2f23-2f26, - U+2f28-2f29, U+2f2b, U+2f2d, U+2f2f-2f32, U+2f38, U+2f3c-2f40, U+2f42-2f4c, - U+2f4f-2f52, U+2f54-2f58, U+2f5a-2f66, U+2f69-2f70, U+2f72-2f76, U+2f78, - U+2f7a-2f7c; -} - -/* [69] */ -@font-face { - font-family: "Pretendard Variable"; - font-style: normal; - font-display: swap; - font-weight: 45 920; - src: local("Pretendard Variable"), - url(../../public/woff2-dynamic-subset/PretendardVariable.subset.69.woff2) - format("woff2-variations"); - unicode-range: U+2479-2487, U+249c-24d1, U+24d3-24d7, U+24d9-24e9, U+24eb-24f4, - U+2500-2501, U+2503, U+250c-2513, U+2515-2516, U+2518-2540; -} - -/* [70] */ -@font-face { - font-family: "Pretendard Variable"; - font-style: normal; - font-display: swap; - font-weight: 45 920; - src: local("Pretendard Variable"), - url(../../public/woff2-dynamic-subset/PretendardVariable.subset.70.woff2) - format("woff2-variations"); - unicode-range: U+215b-215e, U+2162-2169, U+2170-2179, U+2195-2199, U+21b0-21b4, - U+21bc, U+21c0, U+21c4-21c5, U+21cd, U+21cf-21d4, U+21e0-21e3, U+21e6-21e9, - U+2200, U+2202-2203, U+2206-2209, U+220b-220c, U+220f, U+2211, U+2213, - U+221a, U+221d-2220, U+2222, U+2225-2227, U+2229-222c, U+222e, U+2234-2237, - U+223d, U+2243, U+2245, U+2248, U+2250-2253, U+225a, U+2260-2262, - U+2264-2267, U+226a-226b, U+226e-2273, U+2276-2277, U+2279-227b, U+2280-2287, - U+228a-228b, U+2295-2297, U+22a3-22a5, U+22bb-22bc, U+22ce-22cf, U+22da-22db, - U+22ee-22ef, U+2306, U+2312, U+2314, U+2467-2478; -} - -/* [71] */ -@font-face { - font-family: "Pretendard Variable"; - font-style: normal; - font-display: swap; - font-weight: 45 920; - src: local("Pretendard Variable"), - url(../../public/woff2-dynamic-subset/PretendardVariable.subset.71.woff2) - format("woff2-variations"); - unicode-range: U+81-82, U+84, U+a2-a5, U+a7-a8, U+aa, U+ac-ad, U+b1-b3, U+b6, - U+b8-ba, U+bc-be, U+c0, U+c2, U+c6-cb, U+ce-d0, U+d4, U+d8-d9, U+db-dc, - U+de-df, U+e6, U+eb, U+ee-f0, U+f4, U+f7-f9, U+fb, U+fe-ff, U+111, U+126-127, - U+132-133, U+138, U+13f-142, U+149-14b, U+152-153, U+166-167, U+2bc, U+2c7, - U+2d0, U+2d8-2d9, U+2db-2dd, U+391-394, U+396-3a1, U+3a3-3a9, U+3b2-3b6, - U+3b8, U+3bc, U+3be-3c1, U+3c3-3c9, U+2010, U+2015-2016, U+2018-2019, U+201b, - U+201f-2021, U+2025, U+2030, U+2033-2036, U+203c, U+203e, U+2042, U+2074, - U+207a-207f, U+2081-2084, U+2109, U+2113, U+2116, U+2121, U+2126, U+212b, - U+2153-2154; -} - -/* [72] */ -@font-face { - font-family: "Pretendard Variable"; - font-style: normal; - font-display: swap; - font-weight: 45 920; - src: local("Pretendard Variable"), - url(../../public/woff2-dynamic-subset/PretendardVariable.subset.72.woff2) - format("woff2-variations"); - unicode-range: U+e8, U+2da, U+2160, U+2194, U+3054, U+3058, U+306d, U+3086, - U+308d, U+30ac, U+30bb, U+30c4, U+30cd-30ce, U+30e2, U+3132, U+3146, U+3149, - U+339d, U+4e3b, U+4f0a, U+4fdd, U+4fe1, U+5409, U+540c, U+5834, U+592a-592b, - U+5b9a, U+5dde, U+5e0c, U+5e73, U+5f0f, U+60f3, U+653f, U+661f, U+662f, - U+667a, U+683c, U+6b4c, U+6c11, U+767c, U+76ee, U+76f4, U+77f3, U+79d1, - U+7a7a, U+7b2c, U+7d22, U+8207, U+8a00, U+8a71, U+9280, U+9580, U+958b, - U+96c6, U+9762, U+98df, U+9ed1, U+ac2d, U+adc8, U+add3, U+af48, U+b014, - U+b134-b135, U+b158, U+b2aa, U+b35f, U+b6a4, U+b9cf, U+bb63, U+bd23, U+be91, - U+c29b, U+c3f4, U+c42c, U+c55c, U+c573, U+c58f, U+c78c, U+c7dd, U+c8f5, - U+cad1, U+cc48, U+cf10, U+cf20, U+d03c, U+d07d, U+d2a0, U+d30e, U+d38d, - U+d3a8, U+d3c8, U+d5e5, U+d5f9, U+d6e4, U+f90a, U+ff02, U+ff1c; -} - -/* [73] */ -@font-face { - font-family: "Pretendard Variable"; - font-style: normal; - font-display: swap; - font-weight: 45 920; - src: local("Pretendard Variable"), - url(../../public/woff2-dynamic-subset/PretendardVariable.subset.73.woff2) - format("woff2-variations"); - unicode-range: U+3b1, U+2466, U+25a1, U+25a3, U+261c, U+3008-3009, U+305b, - U+305d, U+3069, U+30a7, U+30ba, U+30cf, U+30ef, U+3151, U+3157, U+4e4b, - U+4e5f, U+4e8c, U+4eca, U+4ed6, U+4f5b, U+50cf, U+5149, U+5165, U+5171, - U+5229, U+529b, U+5316, U+539f, U+53f2, U+571f, U+5728, U+58eb, U+591c, - U+5b78, U+5c11, U+5c55, U+5ddd, U+5e02, U+5fb7, U+60c5, U+610f, U+611f, - U+6625, U+66f8, U+6797, U+679c, U+682a, U+6d2a, U+706b, U+7406, U+767b, - U+76f8, U+77e5, U+7acb, U+898b, U+8a69, U+8def, U+8fd1, U+901a, U+90e8, - U+91cd, U+975e, U+ae14, U+ae6c, U+aec0, U+afc7, U+afc9, U+b01c, U+b028, - U+b308, U+b311, U+b314, U+b31c, U+b524, U+b560, U+b764, U+b920, U+b9e3, - U+bd48, U+be7d, U+c0db, U+c231, U+c270, U+c2e3, U+c37d, U+c3ed, U+c530, - U+c6a5, U+c6dc, U+c7a4, U+c954, U+c974, U+d000, U+d565, U+d667, U+d6c5, - U+d79d, U+ff1e; -} - -/* [74] */ -@font-face { - font-family: "Pretendard Variable"; - font-style: normal; - font-display: swap; - font-weight: 45 920; - src: local("Pretendard Variable"), - url(../../public/woff2-dynamic-subset/PretendardVariable.subset.74.woff2) - format("woff2-variations"); - unicode-range: U+131, U+2032, U+2465, U+2642, U+3048, U+3051, U+3083-3084, - U+308f, U+30c0, U+30d1, U+30d3, U+30d6, U+30df, U+30e7, U+3153, U+4e16, - U+4e8b, U+4ee5, U+5206, U+52a0, U+52d5, U+53e4, U+53ef, U+54c1, U+57ce, - U+597d, U+5b8c, U+5ea6, U+5f8c, U+5f97, U+6210, U+6240, U+624b, U+6728, - U+6bd4, U+7236, U+7269, U+7279, U+738b, U+7528, U+7530, U+767e, U+798f, - U+8005, U+8a18, U+90fd, U+91cc, U+9577, U+9593, U+98a8, U+ac20, U+acf6, - U+ad90, U+af5d, U+af80, U+afcd, U+aff0, U+b0a1, U+b0b5, U+b1fd, U+b2fc, - U+b380, U+b51b, U+b584, U+b5b3, U+b8fd, U+b93c, U+b9f4, U+bb44, U+bc08, - U+bc27, U+bc49, U+be55, U+be64, U+bfb0, U+bfc5, U+c178, U+c21f, U+c314, - U+c4f1, U+c58d, U+c664, U+c698, U+c6a7, U+c6c1, U+c9ed, U+cac0, U+cacc, - U+cad9, U+ccb5, U+cdcc, U+d0e4, U+d143, U+d320, U+d330, U+d54d, U+ff06, - U+ff1f, U+ff5e; -} - -/* [75] */ -@font-face { - font-family: "Pretendard Variable"; - font-style: normal; - font-display: swap; - font-weight: 45 920; - src: local("Pretendard Variable"), - url(../../public/woff2-dynamic-subset/PretendardVariable.subset.75.woff2) - format("woff2-variations"); - unicode-range: U+b4, U+20a9, U+20ac, U+2190, U+24d8, U+2502, U+2514, U+2592, - U+25c7-25c8, U+2663, U+3060, U+3064, U+3081, U+3088, U+30a3, U+30a6, U+30aa, - U+30b5, U+30c7, U+30ca-30cb, U+30d0, U+30e3, U+30e5, U+339e, U+4e09, U+4eac, - U+4f5c, U+5167-5168, U+516c, U+51fa, U+5408, U+540d, U+591a, U+5b57, U+6211, - U+65b9, U+660e, U+6642, U+6700, U+6b63, U+6e2f, U+7063, U+7532, U+793e, - U+81ea, U+8272, U+82b1, U+897f, U+8eca, U+91ce, U+ac38, U+ad76, U+ae84, - U+aecc, U+b07d, U+b0b1, U+b215, U+b2a0, U+b310, U+b3d7, U+b52a, U+b618, - U+b775, U+b797, U+bcd5, U+bd59, U+be80, U+bea8, U+bed1, U+bee4-bee5, U+c060, - U+c2ef, U+c329, U+c3dc, U+c597, U+c5bd, U+c5e5, U+c69c, U+c9d6, U+ca29, - U+ca5c, U+ca84, U+cc39, U+cc3b, U+ce89, U+cee5, U+cf65, U+cf85, U+d058, - U+d145, U+d22d, U+d325, U+d37d, U+d3ad, U+d769, U+ff0c; -} - -/* [76] */ -@font-face { - font-family: "Pretendard Variable"; - font-style: normal; - font-display: swap; - font-weight: 45 920; - src: local("Pretendard Variable"), - url(../../public/woff2-dynamic-subset/PretendardVariable.subset.76.woff2) - format("woff2-variations"); - unicode-range: U+2161, U+2228, U+2299, U+2464, U+2517, U+2640, U+3042, U+304a, - U+3053, U+3061, U+307f, U+3082, U+308c, U+3092, U+30a8, U+30ab, U+30ad, - U+30b0, U+30b3, U+30b7, U+30c1, U+30c6, U+30c9, U+30d5, U+30d7, U+30de, - U+30e0-30e1, U+30ec-30ed, U+4e0b, U+4e0d, U+4ee3, U+53f0, U+548c, U+5b89, - U+5bb6, U+5c0f, U+611b, U+6771, U+6aa2, U+6bcd, U+6c34, U+6cd5, U+6d77, - U+767d, U+795e, U+8ecd, U+9999, U+9ad8, U+ac07, U+ac1a, U+ac40, U+ad0c, - U+ad88, U+ada4, U+ae01, U+ae65, U+aebd, U+aec4, U+afe8, U+b139, U+b205, - U+b383, U+b38c, U+b42c, U+b461, U+b55c, U+b78f, U+b8fb, U+b9f7, U+bafc, - U+bc99, U+bed8, U+bfcd, U+c0bf, U+c0f9, U+c167, U+c204, U+c20f, U+c22f, - U+c258, U+c298, U+c2bc, U+c388, U+c501, U+c50c, U+c5b9, U+c5ce, U+c641, - U+c648, U+c73d, U+ca50, U+ca61, U+cc4c, U+ceac, U+d0d4, U+d5f7, U+d6d7, - U+ff1a; -} - -/* [77] */ -@font-face { - font-family: "Pretendard Variable"; - font-style: normal; - font-display: swap; - font-weight: 45 920; - src: local("Pretendard Variable"), - url(../../public/woff2-dynamic-subset/PretendardVariable.subset.77.woff2) - format("woff2-variations"); - unicode-range: U+2103, U+2463, U+25c6, U+25cb, U+266c, U+3001, U+300a, U+3046, - U+304c-304d, U+304f, U+3055, U+3059, U+3063, U+3066-3068, U+306f, U+3089, - U+30b8, U+30bf, U+314f, U+4e0a, U+570b, U+5730, U+5916, U+5929, U+5c71, - U+5e74, U+5fc3, U+601d, U+6027, U+63d0, U+6709, U+6734, U+751f, U+7684, - U+82f1, U+9053, U+91d1, U+97f3, U+ac2f, U+ac4d, U+adc4, U+ade4, U+ae41, - U+ae4d-ae4e, U+aed1, U+afb9, U+b0e0, U+b299, U+b365, U+b46c, U+b480, U+b4c8, - U+b7b4, U+b819, U+b918, U+baab, U+bab9, U+be8f, U+bed7, U+c0ec, U+c19f, - U+c1a5, U+c3d9, U+c464, U+c53d, U+c553, U+c570, U+c5cc, U+c633, U+c6a4, - U+c7a3, U+c7a6, U+c886, U+c9d9-c9da, U+c9ec, U+ca0c, U+cc21, U+cd1b, U+cd78, - U+cdc4, U+cef8, U+cfe4, U+d0a5, U+d0b5, U+d0ec, U+d15d, U+d188, U+d23c, - U+d2ac, U+d729, U+d79b, U+ff01, U+ff08-ff09, U+ff5c; -} - -/* [78] */ -@font-face { - font-family: "Pretendard Variable"; - font-style: normal; - font-display: swap; - font-weight: 45 920; - src: local("Pretendard Variable"), - url(../../public/woff2-dynamic-subset/PretendardVariable.subset.78.woff2) - format("woff2-variations"); - unicode-range: U+2039-203a, U+223c, U+25b3, U+25b7, U+25bd, U+25cf, U+266a, - U+3002, U+300b, U+304b, U+3057, U+305f, U+306a-306b, U+307e, U+308a-308b, - U+3093, U+30a2, U+30af, U+30b9, U+30c3, U+30c8, U+30e9-30eb, U+33a1, U+4e00, - U+524d, U+5357, U+5b50, U+7121, U+884c, U+9751, U+ac94, U+aebe, U+aecd, - U+af08, U+af41, U+af49, U+b010, U+b053, U+b109, U+b11b, U+b128, U+b154, - U+b291, U+b2e6, U+b301, U+b385, U+b525, U+b5b4, U+b729, U+b72f, U+b738, - U+b7ff, U+b837, U+b975, U+ba67, U+bb47, U+bc1f, U+bd90, U+bfd4, U+c27c, - U+c324, U+c379, U+c3e0, U+c465, U+c53b, U+c58c, U+c610, U+c653, U+c6cd, - U+c813, U+c82f, U+c999, U+c9e0, U+cac4, U+cad3, U+cbd4, U+cc10, U+cc22, - U+ccb8, U+ccbc, U+cda5, U+ce84, U+cea3, U+cf67, U+cfe1, U+d241, U+d30d, - U+d31c, U+d391, U+d401, U+d479, U+d5c9, U+d5db, U+d649, U+d6d4; -} - -/* [79] */ -@font-face { - font-family: "Pretendard Variable"; - font-style: normal; - font-display: swap; - font-weight: 45 920; - src: local("Pretendard Variable"), - url(../../public/woff2-dynamic-subset/PretendardVariable.subset.79.woff2) - format("woff2-variations"); - unicode-range: U+b0, U+e9, U+2193, U+2462, U+260e, U+261e, U+300e-300f, U+3044, - U+30a4, U+30fb-30fc, U+314d, U+5973, U+6545, U+6708, U+7537, U+ac89, U+ac9c, - U+acc1, U+ad04, U+ad75, U+ad7d, U+ae45, U+ae61, U+af42, U+b0ab, U+b0af, - U+b0b3, U+b12c, U+b194, U+b1a8, U+b220, U+b258, U+b284, U+b2ff, U+b315, - U+b371, U+b3d4-b3d5, U+b460, U+b527, U+b534, U+b810, U+b818, U+b98e, U+ba55, - U+bbac, U+bc0b, U+bc40, U+bca1, U+bccd, U+bd93, U+be54, U+be5a, U+bf08, - U+bf50, U+bf55, U+bfdc, U+c0c0, U+c0d0, U+c0f4, U+c100, U+c11e, U+c170, - U+c20d, U+c274, U+c290, U+c308, U+c369, U+c539, U+c587, U+c5ff, U+c6ec, - U+c70c, U+c7ad, U+c7c8, U+c83c, U+c881, U+cb48, U+cc60, U+ce69, U+ce6b, - U+ce75, U+cf04, U+cf08, U+cf55, U+cf70, U+cffc, U+d0b7, U+d1a8, U+d2c8, - U+d384, U+d47c, U+d48b, U+d5dd, U+d5e8, U+d720, U+d759, U+f981; -} - -/* [80] */ -@font-face { - font-family: "Pretendard Variable"; - font-style: normal; - font-display: swap; - font-weight: 45 920; - src: local("Pretendard Variable"), - url(../../public/woff2-dynamic-subset/PretendardVariable.subset.80.woff2) - format("woff2-variations"); - unicode-range: U+e0, U+e2, U+395, U+3b7, U+3ba, U+2460-2461, U+25a0, - U+3010-3011, U+306e, U+30f3, U+314a, U+314c, U+5927, U+65b0, U+7e41, U+97d3, - U+9ad4, U+ad49, U+ae0b, U+ae0d, U+ae43, U+ae5d, U+aecf, U+af3c, U+af64, - U+afd4, U+b080, U+b084, U+b0c5, U+b10c, U+b1e8, U+b2ac, U+b36e, U+b451, - U+b515, U+b540, U+b561, U+b6ab, U+b6b1, U+b72c, U+b730, U+b744, U+b800, - U+b8ec, U+b8f0, U+b904, U+b968, U+b96d, U+b987, U+b9d9, U+bb36, U+bb49, - U+bc2d, U+bc43, U+bcf6, U+bd89, U+be57, U+be61, U+bed4, U+c090, U+c130, - U+c148, U+c19c, U+c2f9, U+c36c, U+c37c, U+c384, U+c3df, U+c575, U+c584, - U+c660, U+c719, U+c816, U+ca4d, U+ca54, U+cabc, U+cb49, U+cc14, U+cff5, - U+d004, U+d038, U+d0b4, U+d0d3, U+d0e0, U+d0ed, U+d131, U+d1b0, U+d31f, - U+d33d, U+d3a0, U+d3ab, U+d514, U+d584, U+d6a1, U+d6cc, U+d749, U+d760, - U+d799; -} - -/* [81] */ -@font-face { - font-family: "Pretendard Variable"; - font-style: normal; - font-display: swap; - font-weight: 45 920; - src: local("Pretendard Variable"), - url(../../public/woff2-dynamic-subset/PretendardVariable.subset.81.woff2) - format("woff2-variations"); - unicode-range: U+24, U+60, U+3b9, U+3bb, U+3bd, U+2191, U+2606, U+300c-300d, - U+3131, U+3134, U+3139, U+3141-3142, U+3148, U+3161, U+3163, U+321c, U+4eba, - U+5317, U+ac31, U+ac77, U+ac9f, U+acb9, U+acf0-acf1, U+acfd, U+ad73, U+af3d, - U+b00c, U+b04a, U+b057, U+b0c4, U+b188, U+b1cc, U+b214, U+b2db, U+b2ee, - U+b304, U+b4ed, U+b518, U+b5bc, U+b625, U+b69c-b69d, U+b7ac, U+b801, U+b86c, - U+b959, U+b95c, U+b985, U+ba48, U+bb58, U+bc0c, U+bc38, U+bc85, U+bc9a, - U+bf40, U+c068, U+c0bd, U+c0cc, U+c12f, U+c149, U+c1e0, U+c22b, U+c22d, - U+c250, U+c2fc, U+c300, U+c313, U+c370, U+c3d8, U+c557, U+c580, U+c5e3, - U+c62e, U+c634, U+c6f0, U+c74d, U+c783, U+c78e, U+c796, U+c7bc, U+c92c, - U+ca4c, U+cc1c, U+cc54, U+cc59, U+ce04, U+cf30, U+cfc4, U+d140, U+d321, - U+d38c, U+d399, U+d54f, U+d587, U+d5d0, U+d6e8, U+d770; -} - -/* [82] */ -@font-face { - font-family: "Pretendard Variable"; - font-style: normal; - font-display: swap; - font-weight: 45 920; - src: local("Pretendard Variable"), - url(../../public/woff2-dynamic-subset/PretendardVariable.subset.82.woff2) - format("woff2-variations"); - unicode-range: U+d7, U+ea, U+fc, U+2192, U+25bc, U+3000, U+3137, U+3145, - U+315c, U+7f8e, U+ac13, U+ac71, U+ac90, U+acb8, U+ace7, U+ad7f, U+ae50, - U+aef4, U+af34, U+afbc, U+b048, U+b09a, U+b0ad, U+b0bc, U+b113, U+b125, - U+b141, U+b20c, U+b2d9, U+b2ed, U+b367, U+b369, U+b374, U+b3cb, U+b4ec, - U+b611, U+b760, U+b81b, U+b834, U+b8b0, U+b8e1, U+b989, U+b9d1, U+b9e1, - U+b9fa, U+ba4d, U+ba78, U+bb35, U+bb54, U+bbf9, U+bc11, U+bcb3, U+bd05, - U+bd95, U+bdd4, U+be10, U+bed0, U+bf51, U+c0d8, U+c232, U+c2b7, U+c2eb, - U+c378, U+c500, U+c52c, U+c549, U+c568, U+c598, U+c5c9, U+c61b, U+c639, - U+c67c, U+c717, U+c78a, U+c80a, U+c90c-c90d, U+c950, U+c9e7, U+cbe4, U+cca9, - U+cce4, U+cdb0, U+ce78, U+ce94, U+ce98, U+cf8c, U+d018, U+d034, U+d0f1, - U+d1b1, U+d280, U+d2f8, U+d338, U+d380, U+d3b4, U+d610, U+d69f, U+d6fc, - U+d758; -} - -/* [83] */ -@font-face { - font-family: "Pretendard Variable"; - font-style: normal; - font-display: swap; - font-weight: 45 920; - src: local("Pretendard Variable"), - url(../../public/woff2-dynamic-subset/PretendardVariable.subset.83.woff2) - format("woff2-variations"); - unicode-range: U+e7, U+2022, U+203b, U+25c0, U+2605, U+2661, U+3147, U+318d, - U+672c, U+8a9e, U+acaa, U+acbc, U+ad1c, U+ae4a, U+ae5c, U+b044, U+b054, - U+b0c8-b0c9, U+b2a6, U+b2d0, U+b35c, U+b364, U+b428, U+b454, U+b465, U+b4b7, - U+b4e3, U+b51c, U+b5a1, U+b784, U+b790, U+b7ab, U+b7f4, U+b82c, U+b835, - U+b8e9, U+b8f8, U+b9d8, U+b9f9, U+ba5c, U+ba64, U+babd, U+bb18, U+bb3b, - U+bbff, U+bc0d, U+bc45, U+bc97, U+bcbc, U+be45, U+be75, U+be7c, U+bfcc, - U+c0b6, U+c0f7, U+c14b, U+c2b4, U+c30d, U+c4f8, U+c5bb, U+c5d1, U+c5e0, - U+c5ee, U+c5fd, U+c606, U+c6c5, U+c6e0, U+c708, U+c81d, U+c820, U+c824, - U+c878, U+c918, U+c96c, U+c9e4, U+c9f1, U+cc2e, U+cd09, U+cea1, U+cef5, - U+cef7, U+cf64, U+cf69, U+cfe8, U+d035, U+d0ac, U+d230, U+d234, U+d2f4, - U+d31d, U+d575, U+d578, U+d608, U+d614, U+d718, U+d751, U+d761, U+d78c, - U+d790; -} - -/* [84] */ -@font-face { - font-family: "Pretendard Variable"; - font-style: normal; - font-display: swap; - font-weight: 45 920; - src: local("Pretendard Variable"), - url(../../public/woff2-dynamic-subset/PretendardVariable.subset.84.woff2) - format("woff2-variations"); - unicode-range: U+2665, U+3160, U+4e2d, U+6587, U+65e5, U+ac12, U+ac14, U+ac16, - U+ac81, U+ad34, U+ade0, U+ae54, U+aebc, U+af2c, U+afc0, U+afc8, U+b04c, - U+b08c, U+b099, U+b0a9, U+b0ac, U+b0ae, U+b0b8, U+b123, U+b179, U+b2e5, - U+b2f7, U+b4c0, U+b531, U+b538, U+b545, U+b550, U+b5a8, U+b6f0, U+b728, - U+b73b, U+b7ad, U+b7ed, U+b809, U+b864, U+b86d, U+b871, U+b9bf, U+b9f5, - U+ba40, U+ba4b, U+ba58, U+ba87, U+baac, U+bbc0, U+bc16, U+bc34, U+bd07, - U+bd99, U+be59, U+bfd0, U+c058, U+c0e4, U+c0f5, U+c12d, U+c139, U+c228, - U+c529, U+c5c7, U+c635, U+c637, U+c735, U+c77d, U+c787, U+c789, U+c8c4, - U+c989, U+c98c, U+c9d0, U+c9d3, U+cc0c, U+cc99, U+cd0c, U+cd2c, U+cd98, - U+cda4, U+ce59, U+ce60, U+ce6d, U+cea0, U+d0d0-d0d1, U+d0d5, U+d14d, U+d1a4, - U+d29c, U+d2f1, U+d301, U+d39c, U+d3bc, U+d4e8, U+d540, U+d5ec, U+d640, - U+d750; -} - -/* [85] */ -@font-face { - font-family: "Pretendard Variable"; - font-style: normal; - font-display: swap; - font-weight: 45 920; - src: local("Pretendard Variable"), - url(../../public/woff2-dynamic-subset/PretendardVariable.subset.85.woff2) - format("woff2-variations"); - unicode-range: U+5e, U+25b2, U+25b6, U+314e, U+ac24, U+ace1, U+ace4, U+ae68, - U+af2d, U+b0d0, U+b0e5, U+b150, U+b155, U+b193, U+b2c9, U+b2dd, U+b3c8, - U+b3fc, U+b410, U+b458, U+b4dd, U+b5a0, U+b5a4, U+b5bb, U+b7b5, U+b838, - U+b840, U+b86f, U+b8f9, U+b960, U+b9e5, U+bab8, U+bb50, U+bc1d, U+bc24-bc25, - U+bca8, U+bcbd, U+bd04, U+bd10, U+bd24, U+be48, U+be5b, U+be68, U+c05c, - U+c12c, U+c140, U+c15c, U+c168, U+c194, U+c219, U+c27d, U+c2a8, U+c2f1, - U+c2f8, U+c368, U+c554-c555, U+c559, U+c564, U+c5d8, U+c5fc, U+c625, U+c65c, - U+c6b1, U+c728, U+c794, U+c84c, U+c88c, U+c8e0, U+c8fd, U+c998, U+c9dd, - U+cc0d, U+cc30, U+ceec, U+cf13, U+cf1c, U+cf5c, U+d050, U+d07c, U+d0a8, - U+d134, U+d138, U+d154, U+d1f4, U+d2bc, U+d329, U+d32c, U+d3d0, U+d3f4, - U+d3fc, U+d56b, U+d5cc, U+d600-d601, U+d639, U+d6c8, U+d754, U+d765; -} - -/* [86] */ -@font-face { - font-family: "Pretendard Variable"; - font-style: normal; - font-display: swap; - font-weight: 45 920; - src: local("Pretendard Variable"), - url(../../public/woff2-dynamic-subset/PretendardVariable.subset.86.woff2) - format("woff2-variations"); - unicode-range: U+3c-3d, U+2026, U+24d2, U+314b, U+ac11, U+acf3, U+ad74, U+ad81, - U+adf9, U+ae34, U+af43, U+afb8, U+b05d, U+b07c, U+b110, U+b118, U+b17c, - U+b180, U+b18d, U+b192, U+b2cc, U+b355, U+b378, U+b4a4, U+b4ef, U+b78d, - U+b799, U+b7a9, U+b7fd, U+b807, U+b80c, U+b839, U+b9b4, U+b9db, U+ba3c, - U+bab0, U+bba4, U+bc94, U+be4c, U+c154, U+c1c4, U+c26c, U+c2ac, U+c2ed, - U+c4f4, U+c55e, U+c561, U+c571, U+c5b5, U+c5c4, U+c654-c655, U+c695, U+c6e8, - U+c6f9, U+c724, U+c751, U+c775, U+c7a0, U+c7c1, U+c874, U+c880, U+c9d5, - U+c9f8, U+cabd, U+cc29, U+cc2c, U+cca8, U+ccab, U+ccd0, U+ce21, U+ce35, - U+ce7c, U+ce90, U+cee8, U+cef4, U+cfe0, U+d070, U+d0b9, U+d0c1, U+d0c4, - U+d0c8, U+d15c, U+d1a1, U+d2c0, U+d300, U+d314, U+d3ed, U+d478, U+d480, - U+d48d, U+d508, U+d53d, U+d5e4, U+d611, U+d61c, U+d68d, U+d6a8, U+d798; -} - -/* [87] */ -@font-face { - font-family: "Pretendard Variable"; - font-style: normal; - font-display: swap; - font-weight: 45 920; - src: local("Pretendard Variable"), - url(../../public/woff2-dynamic-subset/PretendardVariable.subset.87.woff2) - format("woff2-variations"); - unicode-range: U+23, U+25, U+5f, U+a9, U+ac08, U+ac78, U+aca8, U+acac, U+ace8, - U+ad70, U+adc0, U+addc, U+b137, U+b140, U+b208, U+b290, U+b2f5, U+b3c5, - U+b3cc, U+b420, U+b429, U+b529, U+b530, U+b77d, U+b79c, U+b7a8, U+b7c9, - U+b7f0, U+b7fc, U+b828, U+b860, U+b9ad, U+b9c1, U+b9c9, U+b9dd-b9de, U+b9e8, - U+ba38-ba39, U+babb, U+bc00, U+bc8c, U+bca0, U+bca4, U+bcd1, U+bcfc, U+bd09, - U+bdf0, U+be60, U+c0ad, U+c0b4, U+c0bc, U+c190, U+c1fc, U+c220, U+c288, - U+c2b9, U+c2f6, U+c528, U+c545, U+c558, U+c5bc, U+c5d4, U+c600, U+c644, - U+c6c0, U+c6c3, U+c721, U+c798, U+c7a1, U+c811, U+c838, U+c871, U+c904, - U+c990, U+c9dc, U+cc38, U+cc44, U+cca0, U+cd1d, U+cd95, U+cda9, U+ce5c, - U+cf00, U+cf58, U+d150, U+d22c, U+d305, U+d328, U+d37c, U+d3f0, U+d551, - U+d5a5, U+d5c8, U+d5d8, U+d63c, U+d64d, U+d669, U+d734, U+d76c; -} - -/* [88] */ -@font-face { - font-family: "Pretendard Variable"; - font-style: normal; - font-display: swap; - font-weight: 45 920; - src: local("Pretendard Variable"), - url(../../public/woff2-dynamic-subset/PretendardVariable.subset.88.woff2) - format("woff2-variations"); - unicode-range: U+26, U+2b, U+3e, U+40, U+7e, U+ac01, U+ac19, U+ac1d, U+aca0, - U+aca9, U+acb0, U+ad8c, U+ae09, U+ae38, U+ae40, U+aed8, U+b09c, U+b0a0, - U+b108, U+b204, U+b298, U+b2d8, U+b2eb-b2ec, U+b2f4, U+b313, U+b358, U+b450, - U+b4e0, U+b54c, U+b610, U+b780, U+b78c, U+b791, U+b8e8, U+b958, U+b974, - U+b984, U+b9b0, U+b9bc-b9bd, U+b9ce, U+ba70, U+bbfc, U+bc0f, U+bc15, U+bc1b, - U+bc31, U+bc95, U+bcc0, U+bcc4, U+bd81, U+bd88, U+c0c8, U+c11d, U+c13c, - U+c158, U+c18d, U+c1a1, U+c21c, U+c4f0, U+c54a, U+c560, U+c5b8, U+c5c8, - U+c5f4, U+c628, U+c62c, U+c678, U+c6cc, U+c808, U+c810, U+c885, U+c88b, - U+c900, U+c988, U+c99d, U+c9c8, U+cc3d-cc3e, U+cc45, U+cd08, U+ce20, U+cee4, - U+d074, U+d0a4, U+d0dd, U+d2b9, U+d3b8, U+d3c9, U+d488, U+d544, U+d559, - U+d56d, U+d588, U+d615, U+d648, U+d655, U+d658, U+d65c; -} - -/* [89] */ -@font-face { - font-family: "Pretendard Variable"; - font-style: normal; - font-display: swap; - font-weight: 45 920; - src: local("Pretendard Variable"), - url(../../public/woff2-dynamic-subset/PretendardVariable.subset.89.woff2) - format("woff2-variations"); - unicode-range: U+d, U+48, U+7c, U+ac10, U+ac15, U+ac74, U+ac80, U+ac83, U+acc4, - U+ad11, U+ad50, U+ad6d, U+adfc, U+ae00, U+ae08, U+ae4c, U+b0a8, U+b124, - U+b144, U+b178, U+b274, U+b2a5, U+b2e8, U+b2f9, U+b354, U+b370, U+b418, - U+b41c, U+b4f1, U+b514, U+b798, U+b808, U+b824-b825, U+b8cc, U+b978, U+b9d0, - U+b9e4, U+baa9, U+bb3c, U+bc18, U+bc1c, U+bc30, U+bc84, U+bcf5, U+bcf8, - U+bd84, U+be0c, U+be14, U+c0b0, U+c0c9, U+c0dd, U+c124, U+c2dd, U+c2e4, - U+c2ec, U+c54c, U+c57c-c57d, U+c591, U+c5c5-c5c6, U+c5ed, U+c608, U+c640, - U+c6b8, U+c6d4, U+c784, U+c7ac, U+c800-c801, U+c9c1, U+c9d1, U+cc28, U+cc98, - U+cc9c, U+ccad, U+cd5c, U+cd94, U+cd9c, U+cde8, U+ce68, U+cf54, U+d0dc, - U+d14c, U+d1a0, U+d1b5, U+d2f0, U+d30c, U+d310, U+d398, U+d45c, U+d50c, - U+d53c, U+d560, U+d568, U+d589, U+d604, U+d6c4, U+d788; -} - -/* [90] */ -@font-face { - font-family: "Pretendard Variable"; - font-style: normal; - font-display: swap; - font-weight: 45 920; - src: local("Pretendard Variable"), - url(../../public/woff2-dynamic-subset/PretendardVariable.subset.90.woff2) - format("woff2-variations"); - unicode-range: U+39, U+49, U+4d-4e, U+ac04, U+ac1c, U+ac70, U+ac8c, U+acbd, - U+acf5, U+acfc, U+ad00, U+ad6c, U+adf8, U+b098, U+b0b4, U+b294, U+b2c8, - U+b300, U+b3c4, U+b3d9, U+b4dc, U+b4e4, U+b77c, U+b7ec, U+b85d, U+b97c, - U+b9c8, U+b9cc, U+ba54, U+ba74, U+ba85, U+baa8, U+bb34, U+bb38, U+bbf8, - U+bc14, U+bc29, U+bc88, U+bcf4, U+bd80, U+be44, U+c0c1, U+c11c, U+c120, - U+c131, U+c138, U+c18c, U+c218, U+c2b5, U+c2e0, U+c544, U+c548, U+c5b4, - U+c5d0, U+c5ec, U+c5f0, U+c601, U+c624, U+c694, U+c6a9, U+c6b0, U+c6b4, - U+c6d0, U+c704, U+c720, U+c73c, U+c740, U+c744, U+c74c, U+c758, U+c77c, - U+c785, U+c788, U+c790-c791, U+c7a5, U+c804, U+c815, U+c81c, U+c870, U+c8fc, - U+c911, U+c9c4, U+ccb4, U+ce58, U+ce74, U+d06c, U+d0c0, U+d130, U+d2b8, - U+d3ec, U+d504, U+d55c, U+d569, U+d574, U+d638, U+d654, U+d68c; -} - -/* [91] */ -@font-face { - font-family: "Pretendard Variable"; - font-style: normal; - font-display: swap; - font-weight: 45 920; - src: local("Pretendard Variable"), - url(../../public/woff2-dynamic-subset/PretendardVariable.subset.91.woff2) - format("woff2-variations"); - unicode-range: U+20-22, U+27-2a, U+2c-38, U+3a-3b, U+3f, U+41-47, U+4a-4c, - U+4f-5d, U+61-7b, U+7d, U+a0-a1, U+ab, U+ae, U+b7, U+bb, U+bf, U+2013-2014, - U+201c-201d, U+2122, U+ac00, U+ace0, U+ae30, U+b2e4, U+b85c, U+b9ac, U+c0ac, - U+c2a4, U+c2dc, U+c774, U+c778, U+c9c0, U+d558; -} diff --git a/src/modules/article/ArticleFadeIn.tsx b/src/modules/article/ArticleFadeIn.tsx index 664512f6..d648d884 100644 --- a/src/modules/article/ArticleFadeIn.tsx +++ b/src/modules/article/ArticleFadeIn.tsx @@ -1,10 +1,12 @@ "use client"; +import type { Ref } from "react"; import { motion } from "motion/react"; interface IProps { children: React.ReactNode; className?: string; + articleRef?: Ref; } const variants = { @@ -12,9 +14,14 @@ const variants = { hidden: { opacity: 0 }, }; -export default function ArticleFadeIn({ children, className }: IProps) { +export default function ArticleFadeIn({ + children, + className, + articleRef, +}: IProps) { return ( > = ( - props, -) => ( -
- {props.children} -
-); - export interface IArticleHeaderProps { title: string; updatedAt: string; diff --git a/src/modules/article/ArticleLayout.tsx b/src/modules/article/ArticleLayout.tsx new file mode 100644 index 00000000..a5c7d979 --- /dev/null +++ b/src/modules/article/ArticleLayout.tsx @@ -0,0 +1,27 @@ +"use client"; + +import { usePathname } from "next/navigation"; +import { useRef } from "react"; +import ArticleFadeIn from "./ArticleFadeIn"; +import FloatingToc from "./FloatingToc"; + +interface ArticleLayoutProps { + children: React.ReactNode; +} + +export default function ArticleLayout({ children }: ArticleLayoutProps) { + const articleRef = useRef(null); + const pathname = usePathname(); + + return ( +
+ + {children} + + +
+ ); +} diff --git a/src/modules/article/FloatingToc.test.ts b/src/modules/article/FloatingToc.test.ts new file mode 100644 index 00000000..42ce3eb9 --- /dev/null +++ b/src/modules/article/FloatingToc.test.ts @@ -0,0 +1,49 @@ +import { describe, expect, it } from "vitest"; + +import { collectHeadingInfo } from "./FloatingToc"; + +describe("collectHeadingInfo", () => { + it("extracts headings and filters out toc heading", () => { + const root = document.createElement("article"); + + const section1 = document.createElement("section"); + const heading1 = document.createElement("h2"); + heading1.id = "intro"; + heading1.textContent = "Introduction"; + section1.appendChild(heading1); + root.appendChild(section1); + + const tocSection = document.createElement("section"); + const tocHeading = document.createElement("h2"); + tocHeading.id = "toc"; + tocHeading.textContent = "목차"; + tocSection.appendChild(tocHeading); + root.appendChild(tocSection); + + const section2 = document.createElement("section"); + const heading2 = document.createElement("h3"); + heading2.id = "details"; + heading2.textContent = "Details"; + section2.appendChild(heading2); + root.appendChild(section2); + + const headings = collectHeadingInfo(root); + + expect(headings.map((heading) => heading.id)).toEqual(["intro", "details"]); + expect(headings[0]?.level).toBe(2); + expect(headings[1]?.section).toBe(section2); + }); + + it("falls back to heading element when no section exists", () => { + const root = document.createElement("article"); + const heading = document.createElement("h4"); + heading.id = "standalone"; + heading.textContent = "Standalone"; + root.appendChild(heading); + + const headings = collectHeadingInfo(root); + + expect(headings).toHaveLength(1); + expect(headings[0]?.section).toBe(heading); + }); +}); diff --git a/src/modules/article/FloatingToc.tsx b/src/modules/article/FloatingToc.tsx new file mode 100644 index 00000000..842030cf --- /dev/null +++ b/src/modules/article/FloatingToc.tsx @@ -0,0 +1,233 @@ +"use client"; + +import { List, X } from "lucide-react"; +import { useEffect, useMemo, useState, type RefObject } from "react"; +import { twMerge } from "tailwind-merge"; + +/** @lintignore */ +export interface HeadingInfo { + id: string; + title: string; + level: number; + section: Element; +} + +const isTocHeading = (title: string) => + /^(목차|table of contents)$/i.test(title.trim()); + +export function collectHeadingInfo(root: HTMLElement): HeadingInfo[] { + const headings = Array.from( + root.querySelectorAll("h2, h3, h4, h5, h6"), + ); + + return headings + .map((heading) => { + const title = heading.textContent?.trim() ?? ""; + const id = heading.id?.trim() ?? ""; + const level = Number.parseInt(heading.tagName.replace(/[^0-9]/g, ""), 10); + const section = + (heading.closest("section") as Element | null) ?? (heading as Element); + + return { id, title, level, section }; + }) + .filter( + (heading) => + heading.id && + heading.title && + Number.isFinite(heading.level) && + !isTocHeading(heading.title), + ); +} + +interface FloatingTocProps { + targetRef: RefObject; + refreshKey?: string | null; +} + +interface TocItem { + id: string; + title: string; + level: number; +} + +export default function FloatingToc({ + targetRef, + refreshKey, +}: FloatingTocProps) { + const [items, setItems] = useState([]); + const [activeId, setActiveId] = useState(null); + const [isOpen, setIsOpen] = useState(false); + + useEffect(() => { + const root = targetRef.current; + if (!root) { + console.log("no root found"); + return; + } + console.log("collecting headings"); + + const headingInfo = collectHeadingInfo(root); + setItems(headingInfo.map(({ id, title, level }) => ({ id, title, level }))); + setActiveId(headingInfo[0]?.id ?? null); + + const order = headingInfo.map((heading) => heading.id); + const visible = new Set(); + const sectionToId = new Map(); + headingInfo.forEach((heading) => + sectionToId.set(heading.section, heading.id), + ); + + const observer = new IntersectionObserver( + (entries) => { + entries.forEach((entry) => { + const id = sectionToId.get(entry.target); + if (!id) { + return; + } + if (entry.isIntersecting) { + visible.add(id); + } else { + visible.delete(id); + } + }); + + if (!order.length) { + return; + } + + const firstVisible = order.find((id) => visible.has(id)); + if (firstVisible) { + setActiveId(firstVisible); + return; + } + + const viewportHeight = + typeof window === "undefined" ? 0 : window.innerHeight; + + const lastPassed = [...headingInfo] + .reverse() + .find( + (heading) => + heading.section.getBoundingClientRect().top <= + viewportHeight * 0.45, + ); + + const upcoming = headingInfo.find( + (heading) => heading.section.getBoundingClientRect().top >= 0, + ); + + setActiveId(lastPassed?.id ?? upcoming?.id ?? order[0] ?? null); + }, + { + rootMargin: "-35% 0px -45% 0px", + threshold: [0, 0.1, 0.25, 0.5], + }, + ); + + headingInfo.forEach((heading) => observer.observe(heading.section)); + + return () => observer.disconnect(); + }, [targetRef, refreshKey]); + + useEffect(() => { + setIsOpen(false); + }, [refreshKey]); + + const tocList = useMemo(() => { + if (!items.length) { + return null; + } + + return ( +
+ ); + }, [activeId, items]); + + if (!items.length) { + return null; + } + + return ( + <> +
+
+
+ 목차 +
+ {tocList} +
+
+ +
+ + + {isOpen ? ( +
+ +
+ {tocList} +
+ + ) : null} + + + ); +} diff --git a/src/modules/article/block-components.tsx b/src/modules/article/block-components.tsx index 8d90dd9f..ff246f27 100644 --- a/src/modules/article/block-components.tsx +++ b/src/modules/article/block-components.tsx @@ -42,14 +42,6 @@ export function Heading6({ children, ...props }: ComponentProps<"h6">) { ); } -export function Paragraph({ children, ...props }: ComponentProps<"p">) { - return ( -

- {children} -

- ); -} - export function Quote({ children, ...props }: ComponentProps<"blockquote">) { return (
diff --git a/src/modules/article/format-components.tsx b/src/modules/article/format-components.tsx index 5d57a91c..70f3c604 100644 --- a/src/modules/article/format-components.tsx +++ b/src/modules/article/format-components.tsx @@ -34,7 +34,7 @@ const callout: AnnotationHandler = { >
{annotation.query}
diff --git a/src/modules/article/github-dark.tsx b/src/modules/article/github-dark.tsx deleted file mode 100644 index 05ca42ee..00000000 --- a/src/modules/article/github-dark.tsx +++ /dev/null @@ -1,603 +0,0 @@ -const gitHubDark = { - name: "github-dark", - colors: { - focusBorder: "#1f6feb", - foreground: "#c9d1d9", - descriptionForeground: "#8b949e", - errorForeground: "#f85149", - "textLink.foreground": "#58a6ff", - "textLink.activeForeground": "#58a6ff", - "textBlockQuote.background": "#010409", - "textBlockQuote.border": "#30363d", - "textCodeBlock.background": "#6e768166", - "textPreformat.foreground": "#8b949e", - "textSeparator.foreground": "#21262d", - "icon.foreground": "#8b949e", - "keybindingLabel.foreground": "#c9d1d9", - "button.background": "#238636", - "button.foreground": "#ffffff", - "button.hoverBackground": "#2ea043", - "button.secondaryBackground": "#282e33", - "button.secondaryForeground": "#c9d1d9", - "button.secondaryHoverBackground": "#30363d", - "checkbox.background": "#161b22", - "checkbox.border": "#30363d", - "dropdown.background": "#161b22", - "dropdown.border": "#30363d", - "dropdown.foreground": "#c9d1d9", - "dropdown.listBackground": "#161b22", - "input.background": "#0d1117", - "input.border": "#30363d", - "input.foreground": "#c9d1d9", - "input.placeholderForeground": "#484f58", - "badge.foreground": "#f0f6fc", - "badge.background": "#1f6feb", - "progressBar.background": "#1f6feb", - "titleBar.activeForeground": "#8b949e", - "titleBar.activeBackground": "#0d1117", - "titleBar.inactiveForeground": "#8b949e", - "titleBar.inactiveBackground": "#010409", - "titleBar.border": "#30363d", - "activityBar.foreground": "#c9d1d9", - "activityBar.inactiveForeground": "#8b949e", - "activityBar.background": "#0d1117", - "activityBarBadge.foreground": "#f0f6fc", - "activityBarBadge.background": "#1f6feb", - "activityBar.activeBorder": "#f78166", - "activityBar.border": "#30363d", - "sideBar.foreground": "#c9d1d9", - "sideBar.background": "#010409", - "sideBar.border": "#30363d", - "sideBarTitle.foreground": "#c9d1d9", - "sideBarSectionHeader.foreground": "#c9d1d9", - "sideBarSectionHeader.background": "#010409", - "sideBarSectionHeader.border": "#30363d", - "list.hoverForeground": "#c9d1d9", - "list.inactiveSelectionForeground": "#c9d1d9", - "list.activeSelectionForeground": "#c9d1d9", - "list.hoverBackground": "#6e76811a", - "list.inactiveSelectionBackground": "#6e768166", - "list.activeSelectionBackground": "#6e768166", - "list.focusForeground": "#c9d1d9", - "list.focusBackground": "#388bfd26", - "list.inactiveFocusBackground": "#388bfd26", - "list.highlightForeground": "#58a6ff", - "tree.indentGuidesStroke": "#21262d", - "notificationCenterHeader.foreground": "#8b949e", - "notificationCenterHeader.background": "#161b22", - "notifications.foreground": "#c9d1d9", - "notifications.background": "#161b22", - "notifications.border": "#30363d", - "notificationsErrorIcon.foreground": "#f85149", - "notificationsWarningIcon.foreground": "#d29922", - "notificationsInfoIcon.foreground": "#58a6ff", - "pickerGroup.border": "#30363d", - "pickerGroup.foreground": "#8b949e", - "quickInput.background": "#161b22", - "quickInput.foreground": "#c9d1d9", - "statusBar.foreground": "#8b949e", - "statusBar.background": "#0d1117", - "statusBar.border": "#30363d", - "statusBar.focusBorder": "#1f6feb80", - "statusBar.noFolderBackground": "#0d1117", - "statusBar.debuggingForeground": "#f0f6fc", - "statusBar.debuggingBackground": "#da3633", - "statusBarItem.prominentBackground": "#6e768166", - "statusBarItem.remoteForeground": "#c9d1d9", - "statusBarItem.remoteBackground": "#30363d", - "statusBarItem.hoverBackground": "#c9d1d914", - "statusBarItem.activeBackground": "#c9d1d91f", - "statusBarItem.focusBorder": "#1f6feb", - "editorGroupHeader.tabsBackground": "#010409", - "editorGroupHeader.tabsBorder": "#30363d", - "editorGroup.border": "#30363d", - "tab.activeForeground": "#c9d1d9", - "tab.inactiveForeground": "#8b949e", - "tab.inactiveBackground": "#010409", - "tab.activeBackground": "#0d1117", - "tab.hoverBackground": "#0d1117", - "tab.unfocusedHoverBackground": "#6e76811a", - "tab.border": "#30363d", - "tab.unfocusedActiveBorderTop": "#30363d", - "tab.activeBorder": "#0d1117", - "tab.unfocusedActiveBorder": "#0d1117", - "tab.activeBorderTop": "#f78166", - "breadcrumb.foreground": "#8b949e", - "breadcrumb.focusForeground": "#c9d1d9", - "breadcrumb.activeSelectionForeground": "#8b949e", - "breadcrumbPicker.background": "#161b22", - "editor.foreground": "#c9d1d9", - "editor.background": "#0d1117", - "editorWidget.background": "#161b22", - "editor.foldBackground": "#6e76811a", - "editor.lineHighlightBackground": "#6e76811a", - "editorLineNumber.foreground": "#6e7681", - "editorLineNumber.activeForeground": "#c9d1d9", - "editorIndentGuide.background": "#c9d1d91f", - "editorIndentGuide.activeBackground": "#c9d1d93d", - "editorWhitespace.foreground": "#484f58", - "editorCursor.foreground": "#58a6ff", - "editor.findMatchBackground": "#9e6a03", - "editor.findMatchHighlightBackground": "#f2cc6080", - "editor.linkedEditingBackground": "#58a6ff12", - "editor.selectionHighlightBackground": "#3fb95040", - "editor.wordHighlightBackground": "#6e768180", - "editor.wordHighlightBorder": "#6e768199", - "editor.wordHighlightStrongBackground": "#6e76814d", - "editor.wordHighlightStrongBorder": "#6e768199", - "editorBracketMatch.background": "#3fb95040", - "editorBracketMatch.border": "#3fb95099", - "editorInlayHint.background": "#8b949e33", - "editorInlayHint.foreground": "#8b949e", - "editorInlayHint.typeBackground": "#8b949e33", - "editorInlayHint.typeForeground": "#8b949e", - "editorInlayHint.paramBackground": "#8b949e33", - "editorInlayHint.paramForeground": "#8b949e", - "editorGutter.modifiedBackground": "#bb800966", - "editorGutter.addedBackground": "#2ea04366", - "editorGutter.deletedBackground": "#f8514966", - "diffEditor.insertedLineBackground": "#23863633", - "diffEditor.insertedTextBackground": "#2386364d", - "diffEditor.removedLineBackground": "#da363333", - "diffEditor.removedTextBackground": "#da36334d", - "scrollbar.shadow-sm": "#484f5833", - "scrollbarSlider.background": "#6e768133", - "scrollbarSlider.hoverBackground": "#6e768145", - "scrollbarSlider.activeBackground": "#6e768187", - "editorOverviewRuler.border": "#010409", - "panel.background": "#010409", - "panel.border": "#30363d", - "panelTitle.activeBorder": "#f78166", - "panelTitle.activeForeground": "#c9d1d9", - "panelTitle.inactiveForeground": "#8b949e", - "panelInput.border": "#30363d", - "debugIcon.breakpointForeground": "#f85149", - "debugConsole.infoForeground": "#8b949e", - "debugConsole.warningForeground": "#d29922", - "debugConsole.errorForeground": "#ffa198", - "debugConsole.sourceForeground": "#e3b341", - "debugConsoleInputIcon.foreground": "#bc8cff", - "debugTokenExpression.name": "#79c0ff", - "debugTokenExpression.value": "#a5d6ff", - "debugTokenExpression.string": "#a5d6ff", - "debugTokenExpression.boolean": "#56d364", - "debugTokenExpression.number": "#56d364", - "debugTokenExpression.error": "#ffa198", - "symbolIcon.arrayForeground": "#f0883e", - "symbolIcon.booleanForeground": "#58a6ff", - "symbolIcon.classForeground": "#f0883e", - "symbolIcon.colorForeground": "#79c0ff", - "symbolIcon.constructorForeground": "#d2a8ff", - "symbolIcon.enumeratorForeground": "#f0883e", - "symbolIcon.enumeratorMemberForeground": "#58a6ff", - "symbolIcon.eventForeground": "#6e7681", - "symbolIcon.fieldForeground": "#f0883e", - "symbolIcon.fileForeground": "#d29922", - "symbolIcon.folderForeground": "#d29922", - "symbolIcon.functionForeground": "#bc8cff", - "symbolIcon.interfaceForeground": "#f0883e", - "symbolIcon.keyForeground": "#58a6ff", - "symbolIcon.keywordForeground": "#ff7b72", - "symbolIcon.methodForeground": "#bc8cff", - "symbolIcon.moduleForeground": "#ff7b72", - "symbolIcon.namespaceForeground": "#ff7b72", - "symbolIcon.nullForeground": "#58a6ff", - "symbolIcon.numberForeground": "#3fb950", - "symbolIcon.objectForeground": "#f0883e", - "symbolIcon.operatorForeground": "#79c0ff", - "symbolIcon.packageForeground": "#f0883e", - "symbolIcon.propertyForeground": "#f0883e", - "symbolIcon.referenceForeground": "#58a6ff", - "symbolIcon.snippetForeground": "#58a6ff", - "symbolIcon.stringForeground": "#79c0ff", - "symbolIcon.structForeground": "#f0883e", - "symbolIcon.textForeground": "#79c0ff", - "symbolIcon.typeParameterForeground": "#79c0ff", - "symbolIcon.unitForeground": "#58a6ff", - "symbolIcon.variableForeground": "#f0883e", - "symbolIcon.constantForeground": [ - "#aff5b4", - "#7ee787", - "#56d364", - "#3fb950", - "#2ea043", - "#238636", - "#196c2e", - "#0f5323", - "#033a16", - "#04260f", - ], - "terminal.foreground": "#c9d1d9", - "terminal.ansiBlack": "#484f58", - "terminal.ansiRed": "#ff7b72", - "terminal.ansiGreen": "#3fb950", - "terminal.ansiYellow": "#d29922", - "terminal.ansiBlue": "#58a6ff", - "terminal.ansiMagenta": "#bc8cff", - "terminal.ansiCyan": "#39c5cf", - "terminal.ansiWhite": "#b1bac4", - "terminal.ansiBrightBlack": "#6e7681", - "terminal.ansiBrightRed": "#ffa198", - "terminal.ansiBrightGreen": "#56d364", - "terminal.ansiBrightYellow": "#e3b341", - "terminal.ansiBrightBlue": "#79c0ff", - "terminal.ansiBrightMagenta": "#d2a8ff", - "terminal.ansiBrightCyan": "#56d4dd", - "terminal.ansiBrightWhite": "#f0f6fc", - "editorBracketHighlight.foreground1": "#79c0ff", - "editorBracketHighlight.foreground2": "#56d364", - "editorBracketHighlight.foreground3": "#e3b341", - "editorBracketHighlight.foreground4": "#ffa198", - "editorBracketHighlight.foreground5": "#ff9bce", - "editorBracketHighlight.foreground6": "#d2a8ff", - "editorBracketHighlight.unexpectedBracket.foreground": "#8b949e", - "gitDecoration.addedResourceForeground": "#3fb950", - "gitDecoration.modifiedResourceForeground": "#d29922", - "gitDecoration.deletedResourceForeground": "#f85149", - "gitDecoration.untrackedResourceForeground": "#3fb950", - "gitDecoration.ignoredResourceForeground": "#484f58", - "gitDecoration.conflictingResourceForeground": "#db6d28", - "gitDecoration.submoduleResourceForeground": "#8b949e", - "debugToolBar.background": "#161b22", - "editor.stackFrameHighlightBackground": "#bb800966", - "editor.focusedStackFrameHighlightBackground": "#2ea04366", - "peekViewEditor.matchHighlightBackground": "#bb800966", - "peekViewResult.matchHighlightBackground": "#bb800966", - "peekViewEditor.background": "#6e76811a", - "peekViewResult.background": "#0d1117", - "settings.headerForeground": "#8b949e", - "settings.modifiedItemIndicator": "#bb800966", - "welcomePage.buttonBackground": "#21262d", - "welcomePage.buttonHoverBackground": "#30363d", - }, - semanticHighlighting: true, - tokenColors: [ - { - scope: ["comment", "punctuation.definition.comment", "string.comment"], - settings: { - foreground: "#8b949e", - }, - }, - { - scope: [ - "constant", - "entity.name.constant", - "variable.other.constant", - "variable.other.enummember", - "variable.language", - "entity", - ], - settings: { - foreground: "#79c0ff", - }, - }, - { - scope: ["entity.name", "meta.export.default", "meta.definition.variable"], - settings: { - foreground: "#ffa657", - }, - }, - { - scope: [ - "variable.parameter.function", - "meta.jsx.children", - "meta.block", - "meta.tag.attributes", - "entity.name.constant", - "meta.object.member", - "meta.embedded.expression", - ], - settings: { - foreground: "#c9d1d9", - }, - }, - { - scope: "entity.name.function", - settings: { - foreground: "#d2a8ff", - }, - }, - { - scope: ["entity.name.tag", "support.class.component"], - settings: { - foreground: "#7ee787", - }, - }, - { - scope: "keyword", - settings: { - foreground: "#ff7b72", - }, - }, - { - scope: ["storage", "storage.type"], - settings: { - foreground: "#ff7b72", - }, - }, - { - scope: [ - "storage.modifier.package", - "storage.modifier.import", - "storage.type.java", - ], - settings: { - foreground: "#c9d1d9", - }, - }, - { - scope: ["string", "string punctuation.section.embedded source"], - settings: { - foreground: "#a5d6ff", - }, - }, - { - scope: "support", - settings: { - foreground: "#79c0ff", - }, - }, - { - scope: "meta.property-name", - settings: { - foreground: "#79c0ff", - }, - }, - { - scope: "variable", - settings: { - foreground: "#ffa657", - }, - }, - { - scope: "variable.other", - settings: { - foreground: "#c9d1d9", - }, - }, - { - scope: "invalid.broken", - settings: { - fontStyle: "italic", - foreground: "#ffa198", - }, - }, - { - scope: "invalid.deprecated", - settings: { - fontStyle: "italic", - foreground: "#ffa198", - }, - }, - { - scope: "invalid.illegal", - settings: { - fontStyle: "italic", - foreground: "#ffa198", - }, - }, - { - scope: "invalid.unimplemented", - settings: { - fontStyle: "italic", - foreground: "#ffa198", - }, - }, - { - scope: "carriage-return", - settings: { - fontStyle: "italic underline", - background: "#ff7b72", - foreground: "#f0f6fc", - content: "^M", - }, - }, - { - scope: "message.error", - settings: { - foreground: "#ffa198", - }, - }, - { - scope: "string variable", - settings: { - foreground: "#79c0ff", - }, - }, - { - scope: ["source.regexp", "string.regexp"], - settings: { - foreground: "#a5d6ff", - }, - }, - { - scope: [ - "string.regexp.character-class", - "string.regexp constant.character.escape", - "string.regexp source.ruby.embedded", - "string.regexp string.regexp.arbitrary-repitition", - ], - settings: { - foreground: "#a5d6ff", - }, - }, - { - scope: "string.regexp constant.character.escape", - settings: { - fontStyle: "bold", - foreground: "#7ee787", - }, - }, - { - scope: "support.constant", - settings: { - foreground: "#79c0ff", - }, - }, - { - scope: "support.variable", - settings: { - foreground: "#79c0ff", - }, - }, - { - scope: "support.type.property-name.json", - settings: { - foreground: "#7ee787", - }, - }, - { - scope: "meta.module-reference", - settings: { - foreground: "#79c0ff", - }, - }, - { - scope: "punctuation.definition.list.begin.markdown", - settings: { - foreground: "#ffa657", - }, - }, - { - scope: ["markup.heading", "markup.heading entity.name"], - settings: { - fontStyle: "bold", - foreground: "#79c0ff", - }, - }, - { - scope: "markup.quote", - settings: { - foreground: "#7ee787", - }, - }, - { - scope: "markup.italic", - settings: { - fontStyle: "italic", - foreground: "#c9d1d9", - }, - }, - { - scope: "markup.bold", - settings: { - fontStyle: "bold", - foreground: "#c9d1d9", - }, - }, - { - scope: ["markup.underline"], - settings: { - fontStyle: "underline", - }, - }, - { - scope: ["markup.strikethrough"], - settings: { - fontStyle: "strikethrough", - }, - }, - { - scope: "markup.inline.raw", - settings: { - foreground: "#79c0ff", - }, - }, - { - scope: [ - "markup.deleted", - "meta.diff.header.from-file", - "punctuation.definition.deleted", - ], - settings: { - background: "#490202", - foreground: "#ffa198", - }, - }, - { - scope: ["punctuation.section.embedded"], - settings: { - foreground: "#ff7b72", - }, - }, - { - scope: [ - "markup.inserted", - "meta.diff.header.to-file", - "punctuation.definition.inserted", - ], - settings: { - background: "#04260f", - foreground: "#7ee787", - }, - }, - { - scope: ["markup.changed", "punctuation.definition.changed"], - settings: { - background: "#5a1e02", - foreground: "#ffa657", - }, - }, - { - scope: ["markup.ignored", "markup.untracked"], - settings: { - foreground: "#161b22", - background: "#79c0ff", - }, - }, - { - scope: "meta.diff.range", - settings: { - foreground: "#d2a8ff", - fontStyle: "bold", - }, - }, - { - scope: "meta.diff.header", - settings: { - foreground: "#79c0ff", - }, - }, - { - scope: "meta.separator", - settings: { - fontStyle: "bold", - foreground: "#79c0ff", - }, - }, - { - scope: "meta.output", - settings: { - foreground: "#79c0ff", - }, - }, - { - scope: [ - "brackethighlighter.tag", - "brackethighlighter.curly", - "brackethighlighter.round", - "brackethighlighter.square", - "brackethighlighter.angle", - "brackethighlighter.quote", - ], - settings: { - foreground: "#8b949e", - }, - }, - { - scope: "brackethighlighter.unmatched", - settings: { - foreground: "#ffa198", - }, - }, - { - scope: ["constant.other.reference.link", "string.other.link"], - settings: { - foreground: "#a5d6ff", - fontStyle: "underline", - }, - }, - ], -}; - -export default gitHubDark; diff --git a/src/modules/category.tsx b/src/modules/category.tsx index 4bdebe89..ba05f9d6 100644 --- a/src/modules/category.tsx +++ b/src/modules/category.tsx @@ -1,61 +1,11 @@ -import type { LucideIcon } from "lucide-react"; -import { Coffee, Container, PenBox, Wand2 } from "lucide-react"; import type { Locale } from "@common/config"; export type Category = "회고" | "리뷰" | "기술" | "일상" | "기타" | "디자인"; -export function getCategoryIcon(category: Category): LucideIcon { - switch (category) { - case "회고": { - return Coffee; - } - case "리뷰": { - return PenBox; - } - case "기술": { - return Container; - } - case "일상": { - throw new Error('Not implemented yet: "일상" case'); - } - case "기타": { - throw new Error('Not implemented yet: "기타" case'); - } - case "디자인": { - return Wand2; - } - } -} - -export function getCategoryColor(category: Category): string { - switch (category) { - case "회고": { - return "#e6ad4c"; - } - case "리뷰": { - return "#54bf26"; - } - case "기술": { - return "#a68ebf"; - } - case "일상": { - throw new Error('Not implemented yet: "일상" case'); - } - case "기타": { - throw new Error('Not implemented yet: "기타" case'); - } - case "디자인": { - return "#83c9e0"; - } - } -} - -export function renderCategoryIcon(Icon: LucideIcon) { - return ; -} - export function getCategoryLabel(category: Category, locale: Locale): string { - if (locale === "ko") return category; + if (locale === "ko") { + return category; + } // English labels for categories switch (category) { diff --git a/src/modules/color-mode/color-mode.ts b/src/modules/color-mode/color-mode.ts index c7e5c2cf..d8861ea7 100644 --- a/src/modules/color-mode/color-mode.ts +++ b/src/modules/color-mode/color-mode.ts @@ -2,6 +2,7 @@ import { atom, createStore, useAtom, useStore } from "jotai"; import { useCallback, useEffect, useMemo, useState } from "react"; export type ColorModeSetting = "light" | "dark" | "system"; +/** @lintignore */ export type ResolvedColorMode = "light" | "dark"; const STORAGE_KEY = "colorMode"; @@ -12,19 +13,25 @@ const colorModeSettingAtom = atom(null); export const store = createStore(); const getSystemPreference = (): ResolvedColorMode => { - if (typeof window === "undefined") return "light"; + if (typeof window === "undefined") { + return "light"; + } return window.matchMedia("(prefers-color-scheme: dark)").matches ? "dark" : "light"; }; const getInitialSetting = (): ColorModeSetting => { - if (typeof window === "undefined") return "system"; + if (typeof window === "undefined") { + return "system"; + } const raw = window.localStorage.getItem( STORAGE_KEY, ) as ColorModeSetting | null; - if (raw === "light" || raw === "dark" || raw === "system") return raw; + if (raw === "light" || raw === "dark" || raw === "system") { + return raw; + } return "system"; }; diff --git a/src/modules/layout/ArticlePageHeader.tsx b/src/modules/layout/ArticlePageHeader.tsx index aeef97da..dd803bee 100644 --- a/src/modules/layout/ArticlePageHeader.tsx +++ b/src/modules/layout/ArticlePageHeader.tsx @@ -6,7 +6,7 @@ import { ArrowLeft } from "lucide-react"; const ArticlePageHeader = () => { return ( -
+
(null); const handleDownloadPDF = () => { - if (typeof window === "undefined") return; - window.print(); }; diff --git a/src/modules/portfolio/experiences.ts b/src/modules/portfolio/experiences.ts index cf815c2f..37dddc6c 100644 --- a/src/modules/portfolio/experiences.ts +++ b/src/modules/portfolio/experiences.ts @@ -1,3 +1,4 @@ +/** @lintignore */ export interface IExperience { company: string; role: string; diff --git a/src/modules/utterances.tsx b/src/modules/utterances.tsx index 8aa71502..18129f54 100644 --- a/src/modules/utterances.tsx +++ b/src/modules/utterances.tsx @@ -15,9 +15,15 @@ const Utterances = () => { // Inject both iframes once useEffect(() => { const repo = getUtterancesRepo(); - if (loaded.current) return; - if (!lightRef || !darkRef) return; - if (repo === DEFAULT_UTTERANCES_REPO) return; + if (loaded.current) { + return; + } + if (!lightRef || !darkRef) { + return; + } + if (repo === DEFAULT_UTTERANCES_REPO) { + return; + } const add = ( container: HTMLDivElement, @@ -42,8 +48,12 @@ const Utterances = () => { sLight.remove(); sDark.remove(); [lightRef, darkRef].forEach((c) => { - if (!c) return; - while (c.firstChild) c.removeChild(c.firstChild); + if (!c) { + return; + } + while (c.firstChild) { + c.removeChild(c.firstChild); + } }); loaded.current = false; }; diff --git a/src/proxy.ts b/src/proxy.ts index 1c6df4eb..01b88b2e 100644 --- a/src/proxy.ts +++ b/src/proxy.ts @@ -9,8 +9,7 @@ const localizedSubpaths = new Set( Object.keys(articleLocales).map((k) => `/${k}`), ); -function pickLocale(acceptLanguage: string | null): Locale { - if (!acceptLanguage) return i18n.defaultLocale; +function pickLocale(acceptLanguage: string): Locale { const prefs = acceptLanguage .split(",") .map((x) => { @@ -21,10 +20,14 @@ function pickLocale(acceptLanguage: string | null): Locale { .sort((a, b) => b.q - a.q); for (const { tag } of prefs) { const exact = i18n.locales.find((l) => l.toLowerCase() === tag); - if (exact) return exact; + if (exact) { + return exact; + } const base = tag.split("-")[0] as Locale; const byBase = i18n.locales.find((l) => l.startsWith(base)); - if (byBase) return byBase; + if (byBase) { + return byBase; + } } return i18n.defaultLocale; } @@ -47,13 +50,17 @@ export default function proxy(req: NextRequest) { const match = Array.from(localizedSubpaths).find( (p) => pathname === p || pathname.startsWith(p + "/"), ); - if (!match) return NextResponse.next(); + if (!match) { + return NextResponse.next(); + } const cookieLocale = (req.cookies.get("locale")?.value || undefined) as | Locale | undefined; + const acceptLanguage = req.headers.get("accept-language"); const detected = - cookieLocale ?? pickLocale(req.headers.get("accept-language")); + cookieLocale ?? + (acceptLanguage ? pickLocale(acceptLanguage) : i18n.defaultLocale); const url = req.nextUrl.clone(); url.pathname = `/${detected}${pathname}`; return NextResponse.redirect(url);